LoginSignup
13
16

More than 3 years have passed since last update.

RailsにBootstrap4を導入する3つの手段

Last updated at Posted at 2019-12-08

1. CDNを利用する

Railsの機能を利用せず直接読み込む方法です。
BootstrapCDNを参考にリンクを挿入します。

※オリジナルのJavascriptやCSSを読み込む場合は順番に注意しましょう。

/app/views/layouts/application.html.erb
<!DOCTYPE html>
<html>
  <head>
    <title>Sample</title>
    <%= csrf_meta_tags %>
    <%= csp_meta_tag %>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
    <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
  </head>
  <body>
  <%= yield %>
  </body>
</html>

ただしRailsの機能を無視したやり方は綺麗ではないので、以下の方法をオススメします。

2. gemを利用する

※webpackerを利用している場合は「3.webpackerを利用する」の方法を行ってください。(Rails6から始めた方はデフォルトでwebpackerが導入されているので注意しましょう。)

1. Gemfileを編集します。

Gemfileに以下のコードを加えます。

Gemfile
gem 'bootstrap', '~> 4.3.1'
gem 'jquery-rails'

※Rails5以下ではjqueryはデフォルトでインストールされています。
bootstrap-sassはbootstrap2や3で利用するものです。もし記述されていたら削除します。

2. ターミナルからルートディレクトリでbundle installを実行します。

Bundle complete!と出ればOK!

3. app/assets/stylesheets/application.cssの拡張子を変更します。

app/assets/stylesheets/application.cssの拡張子をscssに変えます。
ターミナルで行うには以下のコマンドを実行します。

mv app/assets/stylesheets/application.css app/assets/stylesheets/application.scss
4. 上記のファイルを編集します。

上記で拡張子を変更したファイルを以下のように編集します。

app/assets/stylesheets/application.scss
@import "bootstrap";

以下のコメントは削除します。

app/assets/stylesheets/application.scss
*= require_tree .
*= require_self
5. app/assets/javascript/application.jsを編集します。

app/assets/javascript/application.jsを以下のように編集します。
こちらは既存のコードは削除せず追加します。

app/assets/javascript/application.js
//= require jquery3
//= require popper
//= require bootstrap-sprockets

3. webpackerを利用する

Rails6ではデフォルトで導入されるようになりました。既に導入されている場合は4から行ってください。また、yarnがインストールされている必要があります。

1. Gemfileを編集します。

Gemfileに以下のコードを追加します。

Gemfile
gem 'webpacker', '~> 4.0'
2. ターミナルからルートディレクトリでbundle installを実行します。

Bundle complete!と出ればOK!

3. ターミナルから以下のコマンドを実行します。

bundle exec rails webpacker:install

4. app/javascript/にフォルダを作成します。

app/javascript/にsrcフォルダを作成します。
ターミナルで行うには以下のコマンドを実行します。

mkdir app/javascript/src
5. 上記フォルダにファイルを作成します。

app/javascript/src/にapplication.scssファイルを作成します。
ターミナルで行うには以下のコマンドを実行します。

touch app/javascript/src/application.scss
6. bootstrapとその仲間を導入します。

ターミナルで以下のコマンドを実行します。

yarn add bootstrap@4.3.1 jquery popper.js
7. app/javascript/packs/application.jsを編集します。

app/javascript/packs/application.jsを以下のように編集します。

app/javascript/packs/application.js
import 'bootstrap'
import '../src/application.scss'
8. app/javascript/src/application.scssを編集します。

app/javascript/src/application.scssを以下のように編集します。

app/javascript/src/application.scss
@import '~bootstrap/scss/bootstrap';
9. app/views/layouts/application.html.erbを編集します。

上記で編集したファイルを読む込むようにします。
app/views/layouts/application.html.erbを以下のように編集します。

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

    <%#=以下の2つを追加する %>
    <%= stylesheet_pack_tag 'application' %>
    <%= javascript_pack_tag 'application' %>
  </head>
  <body>
    <%= yield %>
  </body>
</html>

なお上記のやり方は「RailsでBootstrapとFont-AwesomeはWebpackerで今時っぽく使おう」を参考にさせていただきました。

13
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
16