嵌套资源的form_with模型参数Rails

时间:2018-12-27 08:26:01

标签: ruby-on-rails

嗨,我是Rails(和Stackoverflow)的新手,请原谅我的问题。

在“ Rails入门”指南中,我对<%= form_with(model: [ @article, @article.comments.build ], local: true) do |form| %>感到困惑。

  1. [@article, @article.comments.build]中提到的guide是“构建嵌套路线”,但是它是如何做到的呢?

  2. edgeguides中所述,model: @article将实际对象@article传递到表单中。那么如何将嵌套路由传递给模型参数呢?

提前感谢您的指导和耐心!

更新
经过大量研究,我取得了以下进展

  • buildnew的别名。
  • [@article, @article.comments.build]是一个数组
  • 参数model接受一个类的实例(在这种情况下为comment),并推断范围(:comment)和url(article_comments_path(@article) )。因为传入的实例是新实例,所以rails会将方法推断为post Source

    那么在告诉Rails正确的URL(article_comments_path(@article))的同时,哈希[@article, @article.comments.build]如何返回类comment的实例?

  • 1 个答案:

    答案 0 :(得分:0)

    edgeguides中,仅提供名称空间路由示例,而不提供嵌套路由示例。

    传递[@article, @article.comments.build]时,它会将关联对象comment的URL视为嵌套路由。

    这是form_withform_for的优势