簡體   English   中英

嵌套資源的form_with模型參數Rails

[英]form_with model parameter for nested resources Rails

嗨,我是Rails(和Stackoverflow)的新手,請原諒我的問題。

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

  1. 指南提到[@article, @article.comments.build] “構建嵌套路由”,但是它是如何做到的?

  2. edgeguides model: @article將實際對象@article傳遞到表單中。 那么如何將嵌套路由傳遞給model參數呢?

在此先感謝您的指導和耐心!

UPDATE
經過大量研究,我取得了以下進展

  • 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的實例?

  • edgeguides ,僅提供名稱空間路由示例,而不提供嵌套路由示例。

    當您傳遞[@article, @article.comments.build] ,它會將關聯的對象comment的URL當作嵌套路由來考慮。

    這是form_with優於form_for優勢

    暫無
    暫無

    聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

     
    粵ICP備18138465號  © 2020-2024 STACKOOM.COM