Rails5にデザインを適用するBootstrapの導入と簡単な使い方!

Bootstrapを導入してRails5にデザインを変える

「Railsにデザインをあてたいけど、デザイン知識がない!」

そんなときにメチャクチャ便利なのが「Bootstrap(ブートストラップ)」です。

Bootstrapを使えば、プログラミングしかできないデザイン初心者であっても、Webサイトに見栄えのいいデザインを簡単に適用できます。

この記事では、Rails5にBootstrapを導入する手順と簡単な使い方を紹介します。

Bootstrapとは

Bootstrapとは、もともとTwitter社が開発していたCSSフレームワークです。

いまでは、HTMLやCSS、JavaScriptなどが密接にからみあっていることもあり、Webアプリケーションフレームワークと呼ばれるようにもなりました。

フレームワークといえば、RailsもRubyのフレームワークなので、なんとなくイメージはつくと思います。

Bootstrapの場合は、HTMLの構成を合わせ、決められたCSSの「class」をHTMLに指定することで、見栄えのいいデザインや動きが簡単に実現できるようになっています。

また、Bootstrapはレスポンシブに対応しているので、パソコンやスマホで表示してもデザインが崩れません。

Bootstrapを使うことでデザインにかける時間を減らし、適用したWebサイトに統一的なレスポンスデザインを提供してくれるのです。

キツネ

HTMLとCSSの基本がわかれば何となくで使えるよ!

Rails5にBootstrapを導入する手順

Rails5にBootstrapを導入する手順は、とっても簡単です。

ここからさきは、以下の4つステップで進めていきます。

  1. Bootstrapのインストール
  2. SCSSファイルの作成
  3. JSファイルの修正
  4. Rails(Puma)の再起動

1. Bootstrapのインストール

RailsでBootstrapを使う場合は、gemを使ってインストールする方法が一般的です。

Bootstrapは内部でjQueryを利用しているので、こちらもあわせてインストールしておきます。

Gemfileに以下を追記して、Bundlerを実行してみてください。

Gemfile
gem 'bootstrap', '~> 4.3.1'
gem 'jquery-rails'
BootstrapとjQueryをインストール
$ bundle install

2. SCSSファイルを作成

次に、application.cssapplication.scssというファイル名に変更します。

これは、Bootstrapが「SCSS」という記法で書かれており、Railsでもあわせて利用するためです。

「SCSS」とは、CSSを拡張した記法のことで、いまのWeb業界では多く利用されている記法になります。

ここでは具体的な解説はしませんが、CSSの記述よりも見やすく、書きやすくなった記法だと思ってください。

キツネ

CSSと書き方が似ているから難しくないよ!
ファイルの拡張子を変更
$ mv app/assets/stylesheets/application.css app/assets/stylesheets/application.scss

ファイル名を変更したら、実際にファイルを開いて、*= require_tree .*= require_selfを削除し、@import "bootstrap";を追記します。

追記したコードが、Bootstrapを読み込むための設定になります。

app/assets/stylesheets/application.scss
/*
 * This is a manifest file that'll be compiled into application.css, which will include all the files
 * listed below.
 *
 * Any CSS and SCSS file within this directory, lib/assets/stylesheets, or any plugin's
 * vendor/assets/stylesheets directory can be referenced here using a relative path.
 *
 * You're free to add application-wide styles to this file and they'll appear at the bottom of the
 * compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS
 * files in this directory. Styles in this file should be added after the last require_* statement.
 * It is generally better to create a new file per style scope.
 *
 *= require_tree .    <(削除)
 *= require_self      <(削除)
 */
@import "bootstrap";  <(追加)

3. JSファイルを修正

Bootstrapで使われる「JavaScript」や「jQuery」などの関連ファイルを読み込む設定をします。

app/assets/javascripts/application.jsを開き、以下を参考に元々あったコードの上に追記してください。

app/assets/javascripts/application.js
# 以下の3つを追記
//= require jquery3
//= require popper
//= require bootstrap

# 元々あったコード
//= require rails-ujs
//= require activestorage
//= require turbolinks

4. Rails(Puma)を再起動

ここで一度、ブラウザからアクセスしてみてください。

もし、この段階でエラーが表示されているのであれば、Rails(Puma)を再起動します。

それでもエラーが変わらない場合は、「node.js」のバージョンが古い可能性があります。

DockerでRailsを構築した方は、Dockerfileが以下のような設定になっているかを確認してください。

Dockerfile
# Railsに必要なパッケージをインストール
RUN apt-get update -qq && apt-get install -y nodejs
RUN curl -sL https://deb.nodesource.com/setup_10.x | bash - \
    && apt-get install -y nodejs

# 以下の公式サイトの記述では、node.jsのバージョンが低くてbootstrapが使えない
# RUN apt-get update -qq && apt-get install -y nodejs

キツネ

Dockerで構築するときは気をつけよう!

Bootstrapの使い方(テンプレート)

最後に、Bootstrapの簡単な使い方を紹介して終わりにします。

といっても、Bootstrapの使い方をすべて紹介するのは不可能なので、とりあえずここでは、Bootstrapのテンプレートから適当にデザインを選んで、ヘッダー部分のコードをコピペしてみましょう。

以下のように、app/views/layouts/application.html.erbを書き変えて、ヘッダーのデザインが適用されたかを確認します。

app/views/layouts/application.html.erb
<!DOCTYPE html>
<html>
  <head>
    <title>App</title>
    <%= csrf_meta_tags %>
    <%= csp_meta_tag %>

    <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
    <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
  </head>

  <body>
    <div class="d-flex flex-column flex-md-row align-items-center p-3 px-md-4 mb-3 bg-white border-bottom shadow-sm">
      <h5 class="my-0 mr-md-auto font-weight-normal">Company name</h5>
      <nav class="my-2 my-md-0 mr-md-3">
        <a class="p-2 text-dark" href="#">Features</a>
        <a class="p-2 text-dark" href="#">Enterprise</a>
        <a class="p-2 text-dark" href="#">Support</a>
        <a class="p-2 text-dark" href="#">Pricing</a>
      </nav>
      <a class="btn btn-outline-primary" href="#">Sign up</a>
    </div>
    <p class="notice"><%= notice %></p>
    <p class="alert"><%= alert %></p>
    <%= yield %>
  </body>
</html>

下のようなヘッダーデザインに変わっていれば成功です。ここからさきは、Bootstrapの公式サイトを見ながら自分の好きなようにカスタマイズしてみてください。

bootstrapのデザインを適用してみる

まとめ

Bootstrapを使うことで、誰でも簡単にRailsにデザインを適用することができます。

大きなプロジェクトで使うことは少ないと思いますが、管理画面のようにデザインにこだわらない画面や、個人のWebサイト、ポートフォリオなどに使ってみるのがおすすめです。

テキストのコピーはできません。