[英]How do I use Simple_Form with Nested Resources?
I have 3 models: FamilyTree, Node, Comment. 我有3个型号:FamilyTree,Node,Comment。
Every entry on a FamilyTree is a Node. FamilyTree上的每个条目都是一个节点。 A node can be a comment.
节点可以是注释。
The models are as follows: 模型如下:
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
The routes.rb
routes.rb
resources :family_trees do
resources :nodes do
resources :comments
end
end
How do I use Simple_Form to edit a comment? 如何使用Simple_Form编辑评论? What does that look like?
那是什么样的?
I tried this: 我试过这个:
<%= 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 %>
But that gave me this error - At line 1 of that partial: 但这给了我这个错误 - 在那个部分的第1行:
NoMethodError at /family_trees/1/nodes/4/comments/3/edit
undefined method `family_tree_comment_path' for #<#<Class:0x007f87356c5110>:0x007f8733d338a0>
It turns out that all I had to do was make a slight adjustment to my view: 事实证明,我所要做的只是稍微调整一下我的看法:
<%= 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 %>
That worked wonders. 这创造了奇迹。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.