我找到了很多关于如何构建多模型表单和多模型显示的示例。但是,如果我想要单独的表格和显示怎么办?
post.rb:
class Post < ActiveRecord::Bas
has_many :comments, dependent: :destroy
attr_accessible :comments_attributes
accepts_nested_attributes_for :comments
end
comment.rb:
class Comment < ActiveRecord::Base
belongs_to :post
end
posts_controller.rb:
def new
@post = Post.new
@post.comments.build
...
end
routes.db:
resources posts do
resources comments
end
我在帖子索引中有一个发布评论索引的链接:
视图/帖/ index.html.erb:
...
<%= link_to 'Comments', post_comments_path(post) %>
...
发布和评论每个都有自己的脚手架生成形式(不是嵌套)。
<%= form_for(@post) do |f| %>
...
<%= form_for(@comment) do |f| %>
...
在评论索引中,我循环发表评论:
视图/评论/ index.html.erb:
<% @post = Post.find(params[:post_id]) %> //works fine
<% @post.comments.each do |comment| %>
...
<% end %>
然而,在添加新评论后(在特定帖子ID下)帖子评论索引中的表格为空!
请帮忙。 谢谢:))
答案 0 :(得分:1)
我明白了。
在评论表格中应该是:
<%= form_for([@post, @comment]) do |f| %>
...
路径应该像:
post_comments_path(@post)
edit_post_comment_path(@post,@comment)
等
在评论控制器中:
def index
@post= Post.find(params[:post_id])
@comments= @post.comments.all
...
def show
@post= Post.find(params[:post_id])
@comment= @post.comments.find(params[:id])
...
等
希望其他人会觉得这很有用!