LoginSignup
85
72

More than 3 years have passed since last update.

Rails6でのjQuery導入方法

Last updated at Posted at 2020-11-08

はじめに

やりたいこと

  • いいね機能のAjax対応を実装したい
  • そのためにjQueryを導入したい

動作環境

ruby 2.6.5 / Rails 6.0.3.4

やってみて

Rails6から標準装備されているWebpackerを利用することで簡単に実装できました。
多くの記事がRails5までの情報でとっっっても遠回りしたので、6以降の方は僕のように無駄な時間を使わないでいただけたら…

参考URL

Railsガイド > Rails で JavaScript を使用する

手順

  • jQueryのインストール
  • Webpackの設定
  • application.jsの設定
  • 動作確認

 jQueryのインストール

そもそもjQueryとは

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

したがって、jQuery(ライブラリ)を使うのであればJavaScript(元のプログラミング言語)にコンパイル(翻訳)する必要があります。
コンパイルする方法はいろいろありますが、初学者故、とりあえず簡単なWebpackerを使用していこう!というのが本記事の主旨であります。

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

ターミナル
% yarn add jquery

Rails5以前の導入方法ではjquery-railsというGemをインストールするのが基本線のようですが、Webpackerで管理する際はyarnコマンドを使用してインストールします。

GemをGemfileからインストールしていたのでこちらの記事を参考に削除しました
> GemfileでインストールしたGemを削除する

yarnとは

JavaScriptのパッケージマネージャー。Node.jsで動作するパッケージを管理する。

Node.jsとは

本来フロントサイド開発用の言語であるJavaScriptをサーバーサイドで使うための「環境」のこと
Node.jsのおかげで簡単にAjax対応ができたりする。

つまり、Webpackerという翻訳機にjQueryという言語をyarnというサーバー用の説明書で登録した、という感じでしょうか(違ってたらごめんなさい)

Webpackの設定

Webpackの設定ファイルでjQueryを管理下として認定します。

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

application.jsの設定

application.jsでjQueryを呼び出せるようにします。

javascript/packs/application.js
//中略

require("@rails/ujs").start()
require("turbolinks").start()
require("@rails/activestorage").start()
require("channels")
// 追記
require('jquery')

//中略

以上で導入は完了です。

動作確認

jQueryが問題なく動作しているか確認します。
好きなページに次のコードを転記します。

好きなページ.html.erb
<p>テスト</p>
<script type="text/javascript">
  $(document).ready(function() {
    $("p").text("成功!!");
  });
</script>

p要素のテキストに”成功!!”を代入するようになっています。

(成功例)
スクリーンショット 2020-11-08 18.55.05.png
このように「テスト」ではなく「成功!!」と表示されていれば動作確認は完了です。

おわりに

いろいろな記事を調べてgemを導入したりしていたのですが、Webpackerを使えば簡単に実装できました。

特に今回、JavaScriptとjQueryを調べていく中で、Node.jsのことを表面的にでも理解できたのはよかったかなと思います。

参考にさせていただいた記事
エンジニアの入り口 > 初心者向け!3分で理解するNode.jsとは何か?


Ruby / Rails 初学者向けの記事を書いています。
今後も週3〜4記事ペースで更新していきたいと思いますので、初学者のみなさん、ぜひフォローお願いします!!

最後までお読みいただきありがとうございました!

✔︎

85
72
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
85
72