1.呼び出し1
###renderメソッド:指定したテンプレートを呼び出す時に使うメソッド
重要 |
---|
部分テンプレート名は_formとアンダーバーが付いていますが、呼び出す際は_は付けません。 |
メソッド呼び出し先 |
---|
render 'ファイル名' |
render :アクション名 |
render partial: 'ファイル名' |
(注意)renderメソッドを記述したビューファイルと違うフォルダ内の部分テンプレートを呼び出すときは hoges/hogeのようにどのフォルダの部分テンプレートを使用しているかを記述する必要があります。
ビューファイル -->
render partial: 'hoges/hoge'
下の例だと_right_content.html.erbはこのコードを記述しているindex.html.erbと同じフォルダにあるのでそのままファイル名を記述すれば呼び出すことができます。
参考:Pikawakaさん :「【Rails】部分テンプレートの使い方を徹底解説!」
部分テンプレート上での変数の呼び出し
オプション名 | 働き |
---|---|
localsオプション | localsオプションを使うと部分テンプレート内で使う変数の定義 |
viewfile
#定義方法
<%= render partial: 'ファイル名', locals: { '部分テンプレート内で使う変数': '変数に入れる値' } %>
#使用例
<%= render partial: 'hoge', locals: { hoge: 'こんにちは' } %>
重要
localsオプションを使った場合はpartialは省略できません。 |
---|
partialを省略して書きたければ必ずlocalsオプションも省略しないといけないので注意しましょう。 |
<%= render 'hoge', hoge: hoge %>
変数を複数定義
viewfile
<%= render partial: 'hoge', locals: { name: "前田", adress: "兵庫県神戸市", age: 36 } %>
view
<P>私の名前は<%= name %>です</p>
<P>私は<%= adress %>在住です</p>
<P>年齢は<%= age %>です</p>
表示
私の名前は前田です。
私は兵庫県神戸市在住です。
年齢は36です。
1.呼び出し2
オプション名 | 働き |
---|---|
collectionオプション | ①collectionオプションを使用するとcollectionオプションに指定した変数の要素の分だけ部分テンプレートが繰り返し表示されます。そうすると自動で一つ一つの要素が取り出され部分テンプレートに渡されて繰り返し表示されるという流れになります。 ②collectionオプションを使用する時はpartial:を記述しないとエラーになるので気をつけましょう。 |
ビューファイル
<%= render partial: 'hoge', collection: 繰り返し表示する要素が入っているインスタンス %>
重要
部分テンプレート内で使う変数を変更する場合 |
---|
collectionオプションを使用した場合、部分テンプレート内で使用する変数はオプションで指定した変数が@hogesであったらその単数形のhogeになります。 |
ビューファイル
<%= render partial: 'hoge', collection: @hoges, as: "fuga" %>