首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >具有嵌套资源的form_for

具有嵌套资源的form_for
EN

Stack Overflow用户
提问于 2010-01-10 03:50:38
回答 3查看 106.6K关注 0票数 129

我有一个关于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 %>

这会产生一个错误,“为nil调用id,这将错误地依此类推。”我也试过

<% form_for @article, @comment do |f| %>

它正确地呈现,但将f.text_area与文章的“文本”字段而不是评论的字段相关联,并在该文本区域中显示article.text属性的html。所以我似乎也错了。我想要的是一个表单,它的'submit‘将调用CommentsController上的create操作,参数中有一个评论,例如一个对/ article_id /1/comments的post请求。

我的问题的第二部分是,创建comment实例的最佳方法是什么?我在ArticlesController的显示操作中创建了一个@comment,因此form_for帮助器的作用域中将有一个comment对象。然后,在CommentsController的create操作中,我使用从form_for传入的参数创建了新的@comment。

谢谢!

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2034700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档