0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Rails6にjQueryを導入する方法

Posted at

Rails6から標準で導入されているWebpackerを利用することで、jQueryを簡単に実装できます。

Rails5で書かれている記事も多かったのでだいぶ混乱していました。。

Rails5以前との違い

1. gemが必要ではなくなった
以前までは'jquery-rails'gemをインストールする必要がありましたが、Rails6からはgemの追加が必要なくなり、代わりにwebpackで必要な情報をインストールしていきます。

2. jQuery関連ファイルの保存フォルダが違う場所にある
かつてはapp/assets/javascriptsフォルダに保存していましたが、Rails6以降はapp/javascriptフォルダに変更となります。

jQueryのインストール

そもそもjQueryとは

JavaScriptをより簡単に記述するためのライブラリのひとつ。

したがって、jQuery(ライブラリ)を使うのであればJavaScript(元のプログラミング言語)にコンパイル(翻訳)する必要があります。
そのためにここではWebpackerを使用していきます。

ではまず、jQueryのインストールを行います。

% yarn add jquery

正常にインストールされたかは package.jsonで確認できます。

Webpackerで管理する際はyarnコマンドを使用してインストールします。

次に「config/webpack/environment.js」を開きます。
以下のように、コードを追加します。

config/webpack/environment.js
const { environment } = require('@rails/webpacker')
//ここから
const webpack = require('webpack')
environment.plugins.prepend('Provide',
  new webpack.ProvidePlugin({
    $: 'jquery/src/jquery',
    jQuery: 'jquery/src/jquery'
  })
)
//ここまで
module.exports = environment

次に、「app/javascript/packs/application.js」を開きます。
以下のように、コードを追加します。

app/javascript/packs/application.js
require("@rails/ujs").start()
require("turbolinks").start()
require("@rails/activestorage").start()
require("channels")
//以下の一文を追加
require("jquery")

これでjQueryが導入されたはずです。

動作確認

下記のファイルにコードを追加しました。HTMLファイルであればなんでもいいです。

movies/index/html.erb
<h1>jQuery</h1>
  <p id="hoge">赤色になるよ</p>
  <script>
    $("#hoge").css("color","red")
  </script>

95e2d1d61eccdd7da668a2d85a6b60e7.png

文字が赤色になっていればOKです!

参考:
https://qiita.com/shungo_m/items/53bcae18a740495d1eb3
https://ymiyashitablog.com/rails-jquery/

0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?