多すぎるHTML文... renderメソッドですっきり表示して管理しやすくする。
HTML、CSSとか書いていると1ページに膨大な量のコードがあると管理が大変になってくる。
マークアップしかできなかった当時は、部分的に更新とかできないもんかなーってずっと悩んでいました。
Railsを触るようになると、これをまってたと言わんばかりの「パーシャル」やヘルパーメソッドの「renderメソッド」に出会うことができました。
パーシャルとは
部分テンプレートまたはパーシャルは、出力を扱いやすく分割するための仕組みです。パーシャルを使用することで、ビュー内のコードをいくつものファイルに分割して書き出し、他のテンプレートでも使いまわすことができます。
まさに使いたかったやつやないですか!
んでどやったら使えるんだ?
renderメソッド
<%= render 'menu' %>
上記の呼び出してアンダーバーを先頭につけたファイルの _menu.html.erbを探し出してrenderメソッドを書いたその場所でレンダリングされるそう。
<%= render 'home/menu' %>
とかけばhomeファイルの_menu.html.erbを探してくれるため、ファイル名の重複は避けることができますね!
僕が作成しているHPでのhome.html.erbでは最初展開していなくても200行以上はあり(数えるのめんどいからなんとなく)、管理が大変でしたが
今回はstatic_pagesのhomeファイルにこのようにパーシャルを作成し、、、
renderメッドで各パーシャルの呼び出し。
実際使ってみるとこんなにすっきり!
このページでは全体の構成を把握したり、表示順を変更するなどの編集に留めておいて、
実際のコードの編集は作成した部分テンプレートのファイルで行えるようになりました!