[@ post,Comment.new] 构造的字面意思是什么?我正在使用它(在播客中看到,或在其他地方看到),但我仍然不太明白它是什么意思?如果我们点击“提交”按钮会发生什么事情(确实,评论已添加,但我对内部机制很感兴趣,它与提到的构造有什么联系)?
<% form_for [@post,Comment.new] do |f| %>
<p>
<%= f.label :message %><br />
<%= f.text_area :message %>
</p>
<p>
<%= f.submit 'Post comment' %>
</p>
<% end %>
答案 0 :(得分:0)
虽然标准文档中并不清楚,但有些人发布了有用的评论,阐明了它的功能。示例:http://apidock.com/rails/ActionView/Helpers/FormHelper/form_for
与生成正确名称空间中的路由,或者因为特定资源的路径涉及两个组件有关。
在你引用的情况下,路线将是:
/posts/:post_id/comments/
编辑帖子评论时:
/posts/:post_id/comments/:id
这与仅提供Comment.new所产生的路线形成对比:
/comments/