簡體   English   中英

如何將Simple_Form與嵌套資源一起使用?

[英]How do I use Simple_Form with Nested Resources?

我有3個型號:FamilyTree,Node,Comment。

FamilyTree上的每個條目都是一個節點。 節點可以是注釋。

模型如下:

FamilyTree.rb

# == Schema Information
#
# Table name: family_trees
#
#  id         :integer          not null, primary key
#  name       :string(255)
#  user_id    :integer
#  created_at :datetime
#  updated_at :datetime
#

class FamilyTree < ActiveRecord::Base
  attr_accessible :name
  belongs_to :user
  has_many :memberships, dependent: :destroy
  has_many :members, through: :memberships, source: :user, dependent: :destroy
  has_many :nodes, dependent: :destroy
end

Node.rb

# == Schema Information
#
# Table name: nodes
#
#  id             :integer          not null, primary key
#  name           :string(255)
#  family_tree_id :integer
#  user_id        :integer
#  media_id       :integer
#  media_type     :string(255)
#  created_at     :datetime
#  updated_at     :datetime
#  circa          :datetime
#  is_comment     :boolean
#

class Node < ActiveRecord::Base
  belongs_to :family_tree
  belongs_to :user
  belongs_to :media, polymorphic: true, dependent: :destroy
  has_many :comments, dependent: :destroy
  has_many :node_comments, dependent: :destroy    
end

Comment.rb

# == Schema Information
#
# Table name: comments
#
#  id         :integer          not null, primary key
#  user_id    :integer
#  message    :text
#  node_id    :integer
#  created_at :datetime
#  updated_at :datetime
#

class Comment < ActiveRecord::Base
  validates :message, presence: true    
  belongs_to :user
  belongs_to :node    
end

routes.rb

  resources :family_trees do
    resources :nodes do
      resources :comments
    end
  end

如何使用Simple_Form編輯評論? 那是什么樣的?

我試過這個:

<%= simple_form_for [@family_tree, @node, @comment] do |f| %>
  <%= f.error_notification %>

  <div class="form-inputs">
    <%= f.association :user %>
    <%= f.input :message %>
    <%= f.association :node %>
  </div>

  <div class="form-actions">
    <%= f.button :submit %>
  </div>
<% end %>

但這給了我這個錯誤 - 在那個部分的第1行:

NoMethodError at /family_trees/1/nodes/4/comments/3/edit
undefined method `family_tree_comment_path' for #<#<Class:0x007f87356c5110>:0x007f8733d338a0>

事實證明,我所要做的只是稍微調整一下我的看法:

<%= simple_form_for([@family_tree, @node, @comment]) do |f| %>
  <%= f.error_notification %>

  <div class="form-inputs">
    <%= f.association :user %>
    <%= f.input :message %>
    <%= f.association :node %>
  </div>

  <div class="form-actions">
    <%= f.button :submit %>
  </div>
<% end %>

這創造了奇跡。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM