我有一个包含许多帖子的页面,每个帖子都有一个评论列表。列表末尾是供用户添加评论的表单。一次只能提交一条评论。
我可以逃脱类似的事情:
form for @comment
...
form for @comment
还是我需要特别确保每个表格都针对一个单独的对象?IE
form for @comment1
...
for for @comment2
如果是后者,如何让主页的控制器为页面上的每个帖子创建一个评论对象?
我有一个包含许多帖子的页面,每个帖子都有一个评论列表。列表末尾是供用户添加评论的表单。一次只能提交一条评论。
我可以逃脱类似的事情:
form for @comment
...
form for @comment
还是我需要特别确保每个表格都针对一个单独的对象?IE
form for @comment1
...
for for @comment2
如果是后者,如何让主页的控制器为页面上的每个帖子创建一个评论对象?
你需要这样的东西
<% @posts.each do |post| %>
...
<%= form_for post.comments.build do |f| %>
<%= f.hidden_field :post_id %>
...
<% end %>
<% end %>
或者,如果您在路线中使用嵌套资源
<% @posts.each do |post| %>
...
<%= form_for [post, Comment.new] do |f| %>
...
<% end %>
<% end %>
为此,您可以使用嵌套模型表单。