質問: <%= render 'table_row', collection: @users %> とかいた場合 _table_row.html.erb で各要素を取り出すには何という変数に格納されているのでしょうか https://railsguides.jp/layouts_and_rendering.html をよむと ``` Products <%= render partial: "product", collection: @products %> ``` ``` Product Name: <%= product.name %> ``` となっているので user と単数形にすれば取り出せるのかと思いましたが undefined でした パーシャルビュー名に依存しているのかとおもって table_row としてみても undefined でした collection: オプションを使うにはパーシャルビュー名とモデル名が一致していないといけないのでしょうか?
回答: 同じRails Guideの続きの方に、以下のような文章があります。 > > パーシャルを呼び出す時に指定するコレクションが複数形の場合、パーシャルの個別のインスタンスから、出力するコレクションの個別のメンバにアクセスが行われます。このとき、パーシャル名に基づいた名前を持つ変数が使用されます。 > > > ということで、**パーシャル名**を指定する`render partial: 'table_row', collection: @products`とすれば、`table_row`に入ってくるのではないかと思います。