Refineryをインストール後にデフォルトで設定されているサイトのホームページ”home”ページや”about”ページを変更する方法についてまとめました。
(1)aboutページ
1)デフォルトで表示されているaboutページの設定
“http://localhost:3000/about”にアクセスして表示される内容は、Refineryのpages_controller.rbのshowビューテンプレートを使用しています。
2)showペービューテンプレートをオーバーライドする
デフォルトのshowビューテンプレートはrefineryのディレクトリ内に保存されています。
オーバーライドする場合はこのファイルをappディレクトリ内にコピーします。
“rake refinery:override”コマンドを使ってappディレクトリ内にコピーできます。
$ rake refinery:override view=refinery/pages/show
identical app/views/refinery/pages/show.html.erb
中身は下記1行のみ。
$ more app/views/refinery/pages/show.html.erb
<%= render ‘/refinery/content_page’ %>
3)@pageを使ってコンテンツを表示
Refineryのすべてのビューは@pageインスタンス変数を利用してコンテンツを表示する事が出来ます。
ここではshowビューテンプレートを下記のように変更してみます。
$ vi app/views/refinery/pages/show.html.erb
<section id='body'> <%=raw @page.content_for(:body) %> </section> <section id='side_body'> <%=raw @page.content_for(:side_body) %> </section>
上記の”body”セクションと”side_body”セクションは、管理画面のページ編集画面の”Body”タグと”Side Body”タグに対応しています。
上記show.html.erbでこのセクションの表示を設定しています。
上記showページで’body’セクションのみ記述した場合は、編集画面で”Side Body”部に記述しても実際には表示されません。
(2)Homeページ
1)デフォルトで表示されているhomeページの設定
“http://localhost:3000/”にアクセスして表示される内容は、Refineryのpages_controller.rbのhomeビューテンプレートを使用しています。
2)homeビューテンプレートをオーバーライド
showビューテンプレートと同様にオーバーライドできます。
$ rake refinery:override view=refinery/pages/home
create app/views/refinery/pages/home.html.erb
$ more app/views/refinery/pages/home.html.erb
<%= render ‘/refinery/content_page’ %>
以下、showビューテンプレートと同様に変更できます。