Railsの部分テンプレートに変数を渡す
どうして変数を渡すことが必要か
コントローラに定義していたインスタンス変数を部分テンプレートに表示させようとしたところ、nil
になっていた。色々と調べて見ると部分テンプレートではインスタンス変数の使用はオススメできないようだ。ではどうすればいいか。
部分テンプレートにlocalsで値を渡す
通常部分テンプレートを描画するには
<%= render "partial_template_name" %>
とすれば良いみたいなのですが、これに下記をつけ加えると変数が渡ります。
locals: { foo: @foo, hoge: @hoge }
上記2つをつなげて、
<%= render partial: "partial_template_name", locals: { foo: @foo, hoge: @hoge } %>
のようにすれば描画する部分テンプレート内でfoo
やhoge
という変数に@foo
や@hoge
の値が入って使用することができます。
参考記事
Author And Source
この問題について(Railsの部分テンプレートに変数を渡す), 我々は、より多くの情報をここで見つけました https://qiita.com/yuki_yam/items/b0717460444e4b8eb987著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .