tyoshikawa1106のブログ

- Force.com Developer Blog -

Rails:レイアウトのカスタマイズ

Railsチュートリアルの第五章です。レイアウトのカスタマイズについて勉強しました。


まず、作業前に新しいブランチを作成します。

$ git checkout -b filling-in-layout


application.html.erbを次のように変更します。
f:id:tyoshikawa1106:20150719235723p:plain


次の部分はIEのバージョンが9より小さい場合に実行されます。
f:id:tyoshikawa1106:20150719235833p:plain


続いてログインページヘのリンクがあるhome.html.erbを変更します。
f:id:tyoshikawa1106:20150720000043p:plain


Railsのロゴ画像を下記URLからダウンロードします。
http://rubyonrails.org/images/rails.png


画像はapp/assets/images/ディレクトリにおきます。
f:id:tyoshikawa1106:20150720000347p:plain


ここまでできたらrails sコマンドでlocalhost3000にアクセスします。Homeページ(/static_pages/home)を表示すると次のように表示されます。
f:id:tyoshikawa1106:20150720000550p:plain

BootstrapとカスタムCSSの利用

ここでBootstrapを追加します。Bootstrapはbootstrap-sass gemを使用してRailsアプリケーションに導入することが可能です。次のようにGemfileへbootstrap-sassを追加してください。(6行目と7行目の2つです。)

f:id:tyoshikawa1106:20150720000846p:plain


bundle installコマンドを実行します。

$ bundle install


赤字でメッセージがでました。エラーとは書いていないので、気にせず先に進んだのですが、この後でエラーメッセージが表示されることになったので、bundle updateを実行する必要があるみたいです。
f:id:tyoshikawa1106:20150720001208p:plain


config/application.rbに1行追加し、bootstrap-sassがAsset Pipelineと互換性を持つようにします。
f:id:tyoshikawa1106:20150720001415p:plain


次のコマンドを実行します。

$ subl app/assets/stylesheets/custom.css.scss


@importを使用してBootstrapをインクルードします。
f:id:tyoshikawa1106:20150720001711p:plain


rails sコマンドを実行して先程の画面を確認するとBootstrapが反映されていることがわかります。
f:id:tyoshikawa1106:20150720002127p:plain


custom.cssを次のように変更します。
f:id:tyoshikawa1106:20150720215355p:plain


上記変更後にtypographyのカスタマイズのために次のようにCSSを追加します。
f:id:tyoshikawa1106:20150720215632p:plain


『This is the home page for the Ruby on Rails Tutorial sample application.』の部分の見栄えが良くなりました。
f:id:tyoshikawa1106:20150720215715p:plain


ヘッダーのサイトロゴ部分をカスタマイズします。
f:id:tyoshikawa1106:20150720215808p:plain


SAMPLE APPのロゴ部分が良くなりました。
f:id:tyoshikawa1106:20150720215847p:plain


だいぶ良くなりましたが、更に改善していきます。Railsのパーシャル (partial) と呼ばれる機能を利用します。
f:id:tyoshikawa1106:20150720220655p:plain


renderと呼ばれるRailsヘルパー呼び出しだけを使って、HTML shimのスタイルシート行を置換しています。

<%= render 'layouts/shim' %>
<%= render 'layouts/header' %>


HTML shim用のパーシャルです。
f:id:tyoshikawa1106:20150720220845p:plain


サイトヘッダー用のパーシャルです。
f:id:tyoshikawa1106:20150720220949p:plain


もうひとつサイトフッター用のパーシャルも作成します。
f:id:tyoshikawa1106:20150720221147p:plain


レイアウトに作成したパーシャルを追加します。
f:id:tyoshikawa1106:20150720221235p:plain


レイアウトにフッターを追加したのでCSSも追加します。
f:id:tyoshikawa1106:20150720221346p:plain


追加結果です。
f:id:tyoshikawa1106:20150720221416p:plain


これでRailsアプリケーションにBootstrapを適用する方法とカスタムCSSを追加する方法、パーシャルを使ったレイアウトの共通化を確認できました。続きは次の記事にしたいと思います。