いわりょのBlog

IT関連で学んだことを書いていきます。

多すぎるHTML文... renderメソッドですっきり表示して管理しやすくする。

HTML、CSSとか書いていると1ページに膨大な量のコードがあると管理が大変になってくる。

マークアップしかできなかった当時は、部分的に更新とかできないもんかなーってずっと悩んでいました。

Railsを触るようになると、これをまってたと言わんばかりの「パーシャル」やヘルパーメソッドの「renderメソッド」に出会うことができました。

 

パーシャルとは

部分テンプレートまたはパーシャルは、出力を扱いやすく分割するための仕組みです。パーシャルを使用することで、ビュー内のコードをいくつものファイルに分割して書き出し、他のテンプレートでも使いまわすことができます。


出典: https://railsguides.jp/action_view_overview.html

 

まさに使いたかったやつやないですか!

んでどやったら使えるんだ?

 

renderメソッド

<%= render 'menu' %>

上記の呼び出してアンダーバーを先頭につけたファイルの _menu.html.erbを探し出してrenderメソッドを書いたその場所でレンダリングされるそう。

<%= render 'home/menu' %>

とかけばhomeファイルの_menu.html.erbを探してくれるため、ファイル名の重複は避けることができますね!


僕が作成しているHPでのhome.html.erbでは最初展開していなくても200行以上はあり(数えるのめんどいからなんとなく)、管理が大変でしたが

f:id:Ryo10Leo:20200103124331p:plain
今回はstatic_pagesのhomeファイルにこのようにパーシャルを作成し、、、

f:id:Ryo10Leo:20200101220051p:plain
renderメッドで各パーシャルの呼び出し。
実際使ってみるとこんなにすっきり!

このページでは全体の構成を把握したり、表示順を変更するなどの編集に留めておいて、
実際のコードの編集は作成した部分テンプレートのファイルで行えるようになりました!