Rails Bootstrap-Sassを導入する

RailsにSass用のBootstrapを導入する方法です。

インストールについての公式情報:https://github.com/twbs/bootstrap-sass

Step1. Gemのインストール

Gemfileを開き、sass-rails とbootstrap-sass を追加し、インストールします。

gem 'bootstrap-sass'
gem 'sass-rails'
$ bundle install

Step2. Assetsの追加

RailsのアセットパイプラインにBottstrapを追加します。

app/assets/stylesheet/application.cssapplication.scssにリネームし、bootstrap-sprocketsbootstrapを追加します。bootstrap-sprocketsbootstrapよりも先にimportする必要があります。

@import "bootstrap-sprockets";
@import "bootstrap";

app/assets/javascript/application.jsを開き、bootstrap-sprocketsを追加します。

//= require bootstrap-sprockets

以上で、生成されるHTMLにbootstrapのスタイルシートが追加されます。

Step3. Bootstrap変数の使用

Bootstrapにはいくつもの変数が定義されています。scss内で既定の変数を使用する場合は次のようにbootstrapを呼び出してから使います。

@import "bootstrap";

使用可能な変数一覧はLess用ですがこちらにあります。Sassで使う場合は@$に置き換えて使います。

例えばカラーの @brand-success を使う場合は次のように $brand-success として使います。

h1 {
 color: $brand-success;
}

bootstrapをimportしていないと、次のように怒られます。

Undefined variable: "$brand-success".

Step4. Viewportの設定

Viewportを設定したい場合はつぎのようにします。

app/views/layouts/application.html.erbを開き、viewportを追加します。

<meta name="viewport" content="width=device-width, initial-scale=1.0">

重要なポイント

Railsのアプリケーション名をbootstrapにしていると、bootstrap-sass gemを追加してrailsコマンドを実行すると次のようなnameエラーが発生します。

`<module:Bootstrap>': uninitialized constant Bootstrap::Rails::Application (NameError)