共通のビューを部分テンプレートを使って表示
renderメソッドのパーシャルオプションを使って共通部分を表示しましょう。
部分テンプレートとしてビューファイルを作成する時は _hogehoge.html.erbのようにファイル名の前に_(アンダースコア)をつける必要があります。
次のように書くと部分テンプレートをビューに表示できます。
render partial: 'hogehoge'
別ディレクトリに部分テンプレートのデータがある場合は
render partial: 'ディレクトリ名/hogehoge'
で呼び出せます。
localsオプション
localsオプションを使うと部分テンプレート内で使う変数の定義をすることができます。
render partial: 'ファイル名',locals:{ '部分テンプレート内で使う変数': '変数に入れる値' }
変数は複数指定することも可能です。
render partial: 'ファイル名', locals:{ dog: "ぽち", cat: "たま", pig: "ぶー" }
<p>この子たちの名前は<%= dog %>,<%= cat %>,<%= pig %> です<p>
<!-- この子たちの名前はぽち、たま、ぶーです -->
部分テンプレート内ではインスタンス変数を使わないようにしよう
部分テンプレートに直接インスタンス変数を書いてしますと、
インスタンス変数の定義に依存した書き方になってしまい、再利用性が低下してしまうため。
render partial: 'ファイル名', locals:{ hoge: @hoge }
このようにlocalsオプションでローカル変数に代入してあげましょう。