【月間10万PV達成】ブログの作り方を無料公開中!

RailsにBootstrapを導入!デザインを変えるテンプレートの使い方を紹介

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

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

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

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

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

CSSが苦手な僕でも、簡単にデザインを変更できるよ!

Bootstrapとは「CSSフレームワーク」

【Bootstrap】ロゴ

Bootstrap(ブートストラップ)とは、もともとTwitter社が開発していたCSSフレームワークです。

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

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

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

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

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

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

RailsにBootstrapを導入

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

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

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

1. Bootstrapをgemでインストール

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のデザインを適用してみる

HTMLの構造とCSSのクラスを指定するだけだよ!

まとめ

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

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

またね、キツネ(@kitaaaa_kitsune)でした!

Railsにdeviseを導入する方法と使い方Railsにdeviseをサクッと導入!認証機能の使い方も解説【日本語化】 RuboCopでRailsの品質管理Railsの品質を上げるRuboCopとは?インストールや使い方を紹介!
テキストのコピーはできません。