我有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>
答案 0 :(得分:9)
事实证明,我所要做的只是稍微调整一下我的观点:
<%= 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 %>
这创造了奇迹。