Railsでパーシャルを使って、似たようなコードを共通化したい
Railsでは、partial(パーシャル)という仕組みを使って、似たようなコードを一つのパーツにまとめることができます。
partial(パーシャル)を作りたい
- _search.html.erb というファイルを作り、app/views配下のディレクトリに置く。
- パーシャルを使いたいビューファイルに、render partial を書く。
- パーシャルのファイル名は、_search.html.erbとする。パーシャルは_(アンダースコア)で始まるファイル名にする。
- パーシャルの使い方
<%= render partial: 'search' %>
- これで、partial(パーシャル)が使えるようになります。
partialに渡せるもの
- render partial: には、:objectと、:localsが渡せる。
- :object には、partialファイルの中で partial ファイル名と同じ名前の変数として参照できるオブジェクトを指定する。パーシャルファイル名が_hoge.html.erbなら、パーシャル内で変数には、“hoge”でアクセスできる。
- :locals には、partial ファイルに渡したい値を指定する。
パーシャルのファイル名には、先頭の_(アンダースコア)以外には、_(アンダースコア)や-(ハイフン)を使わない方が良い。ファイル名が原因で、エラーが発生することがある。
コメント