3
带有嵌套资源的form_for
我有一个关于form_for和嵌套资源的两部分问题。假设我正在编写博客引擎,并且想将评论与文章相关联。我定义了一个嵌套资源,如下所示: map.resources :articles do |articles| articles.resources :comments end 评论表单位于文章本身的show.html.erb视图中,位于文章本身下方,例如: <%= render :partial => "articles/article" %> <% form_for([ :article, @comment]) do |f| %> <%= f.text_area :text %> <%= submit_tag "Submit" %> <% end %> 这给出一个错误,“将id称为nil,这会错误地等”。我也尝试过 <% form_for @article, @comment do |f| %> 可以正确呈现,但将f.text_area与文章的“文本”字段而不是评论的字段相关联,并在该文本区域中显示article.text属性的html。所以我似乎也有这个错误。我想要的是一种表单,其“提交”将调用CommentsController上的create动作,在params中带有article_id,例如对/ articles / 1 / comments的发布请求。 我的问题的第二部分是,创建注释实例的最佳方法是什么?我在ArticlesController的show动作中创建一个@comment,因此comment对象将在form_for帮助器的范围内。然后,在CommentsController的create动作中,我使用从form_for传入的参数创建新的@comment。 谢谢!