Techioz Blog

モデルをパーシャルに接続するための Rails のデフォルトは何ですか?

概要

Rails 7 では、モデルをパーシャルに接続するデフォルトがいくつかあるようです。もしそうなら、誰かがドキュメントを教えてくれませんか?

私は Sam Ruby の「Rails 7 によるアジャイル Web 開発」の「Depot」デモに取り組んでいます。このデモでは、ジェネレーターを使用して「Product」テーブルの足場を構築します。このブロックは、index.html.erb に表示されます。

  <div id="products" class="min-w-full">
    <%= render @products %>
  </div>

また、views ディレクトリには _product.html.erb という名前のファイルがあります。

したがって、モデル オブジェクトの配列を同じ名前の部分にマップする規則が必要です。しかし、それを文書化したものは何も見つかりません — このページを含めて: https://guides.rubyonrails.org/layouts_and_rendering.html#rendering-by-default-convention-over-configuration-in-action

オブジェクトが render_in に応答する場合、レンダリングするオブジェクトを渡すことができることがわかります。ただし、Product はこのメソッドを実装または継承していないようです。

通常、私は「明白な」動作を喜んで使用します。しかし、私は Rails のクラスを教えているので、この「魔法」を説明できるようになりたいと思っています (または、少なくともそれがどこに文書化されているかを知りたいです)。

解決策

これは、「レンダリング コレクション」に記載されています。

それがソースコードのドキュメントではないことは承知しています。それがあなたが探しているものである場合、それは信頼できるものであると考えてよいと思います。