所以我有一个相当典型的博客应用程序,其中包含帖子和评论。
每个评论属于一个帖子 一个帖子可以有很多评论。
基本上我想在帖子的显示操作中添加一个评论表单,而在评论模型中的 attr_accessible 下没有 post_id 。
在我的帖子控制器中,我有:
def show
@post = Post.find(params[:id])
@poster = "#{current_user.name} #{current_user.surname} (#{current_user.email})"
@comment = @post.comments.build( poster: @poster )
end
我不完全确定我应该在评论控制器中做什么(如果我说实话,我也不相信上面的代码是正确的)。目前我有:
def create
@post = Post.find(params[:post_id])
@comment = @post.comments.build(params[:post])
if @comment.save
redirect_to @post, notice: "Comment posted"
else
redirect_to @post, error: "Error!"
end
end
我的路线:
resources :comments
resources :posts do
resources :comments
end
最后是表格:
<%= form_for @post.comments.build do |f| %>
<%= f.label :content, "WRITE COMMENT" %>
<%= f.text_area :content, rows: 3 %>
<%= f.hidden_field :post_id, value: @post.id %>
<%= f.submit "Post" %>
<% end %>
这里的问题是我无法将我的 post_id 从 posts 控制器的 show 操作传递到 comments 控制器的 create 操作。任何帮助深表感谢。先感谢您!