Ruby on rails 具有关联模型的rails form_
在官方的rails指南中,我遇到了Ruby on rails 具有关联模型的rails form_,ruby-on-rails,form-for,Ruby On Rails,Form For,在官方的rails指南中,我遇到了 <%= form_for([@article, @article.comments.build]) do |f| %> .... <%end %> .... 我不太确定form_的两个参数代表什么。我认为第一个参数@article是指评论和文章的关联模型,第二个参数似乎是创建新评论 为什么它们在那里,为什么两个参数都在一个数组中?这个特定的代码片段演示的是嵌套路由 非嵌套路由 在调用的form_中,method参数用于确定表单应提
<%= form_for([@article, @article.comments.build]) do |f| %>
....
<%end %>
....
我不太确定form_的两个参数代表什么。我认为第一个参数@article是指评论和文章的关联模型,第二个参数似乎是创建新评论
为什么它们在那里,为什么两个参数都在一个数组中?这个特定的代码片段演示的是嵌套路由 非嵌套路由 在调用的
form_中,method参数用于确定表单应提交到哪个资源URL。例如,如果我们有(@article)
的form_,那么表单将提交到“article”资源的路由(根据记录是新的还是现有的,POST/articles
或PUT/PATCH/articles/:id
)
嵌套路由
嵌套路由是在URL中具有两级资源的路由。例如,您可能有一个嵌套在“article”资源下的“comment”资源(因为注释属于article)。在这种情况下,
的form\u的路由看起来像POST articles/:article\u id/comments
和PUT articles/:article\u id/comments/:id
数组作为参数
作为
调用的form_的参数的数组表示资源将被嵌套,因此将表单提交到嵌套路由
对于深度嵌套的路由(不推荐),您可以继续为需要的每个级别向数组中添加对象,例如,[@category,@article,@comment]
转到/categories/:category\u id/articles/:article\u id/comments
在OP显示的特定情况下,它将提交到发布的“articles/#{@article.id}/comments”
,因为@articles.comments.build
是一个新的注释