質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

0回答

1106閲覧

rails6からjs.cookieを使いたい

pecchan

総合スコア592

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2021/01/09 01:58

編集2021/01/10 01:21

前提・実現したいこと

rails6から「js.cookie」を使いたい。
gem 'js_cookie_rails' をインストールして
application.jsにrequireを追加しました。

発生している問題・エラーメッセージ

application.jsのrequire行で見つからないと言われます。

Uncaught Error: Cannot find module 'js.cookie'

該当のソースコード

\app\javascript\packs\application.js

javascript

1import Rails from "@rails/ujs" 2import Turbolinks from "turbolinks" 3import * as ActiveStorage from "@rails/activestorage" 4import "channels" 5import '../stylesheets/style.css' 6 7var jQuery = require('jquery') 8global.$ = global.jQuery = jQuery; 9window.$ = window.jQuery = jQuery; 10 11//↓ここででエラー 12require ('js.cookie') 13//import "js.cookie" //これも駄目 14//import Cookies from 'js.cookie' //これも駄目 15//equire('js-cookie/src/js.cookie') //これも駄目 16//window.Cookies = require('js-cookie/src/js.cookie') //これも駄目 17 18 19 20Rails.start() 21Turbolinks.start() 22ActiveStorage.start()

試したこと

import や js-cookie/src/js.cookieに変えても同じでした。
分かる方教えていただけないでしょうか?
宜しくお願いします。

追記

CDNだと動作したので
gemからのインストールが怪しいです。
なのでgem list
したところ見当たりませんでした。
そもそもjs-cookie以外も見当たらないものが多かったです。
bundle installが失敗してるのでしょうか?

Gemfile

1source 'https://rubygems.org' 2git_source(:github) { |repo| "https://github.com/#{repo}.git" } 3 4ruby '3.0.0' 5gem 'rails', '~> 6.1.0' 6 7gem 'puma', '~> 5.0' 8gem 'sass-rails', '>= 6' 9gem 'webpacker', '~> 5.0' 10gem 'turbolinks', '~> 5' 11gem 'jbuilder', '~> 2.7' 12gem 'bcrypt', '~> 3.1.7' 13gem 'bootsnap', '>= 1.4.4', require: false 14gem 'aasm' 15gem 'will_paginate' 16gem 'bootstrap-will_paginate' 17gem 'rails-i18n' 18gem 'font-awesome-rails' 19gem 'public_uid' 20gem 'bundle_outdated_formatter' 21gem 'carrierwave' 22gem 'mini_magick' 23gem 'js_cookie_rails' 24 25 26 27group :development, :test do 28 gem 'sqlite3', '~> 1.4' 29 gem 'byebug', platform: :mri 30 gem 'shoulda-matchers' 31 gem 'faker' 32end 33 34group :development do 35 gem 'web-console', '>= 4.1.0' 36 gem 'listen', '~> 3.3' 37 gem 'spring' 38 gem 'spring-watcher-listen' 39 gem 'pry-rails' 40 gem 'pry-byebug' 41 gem 'rack-mini-profiler', '~> 2.0' 42end 43 44group :test do 45 gem 'rails-controller-testing' 46 gem 'minitest-reporters' 47 gem 'guard' 48 gem 'guard-minitest' 49 gem 'rspec-rails' 50 gem 'factory_bot_rails' 51 52 gem 'capybara', '>= 3.26' 53 gem 'launchy' 54 gem 'selenium-webdriver' 55 gem 'webdrivers' 56 gem 'rack_session_access' 57end 58 59group :production do 60 gem 'pg' 61 gem 'fog-aws' 62end 63 64gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] 65

gem listした結果

*** LOCAL GEMS *** abbrev (default: 0.1.0) base64 (default: 0.1.0) benchmark (default: 0.1.1) bigdecimal (default: 3.0.0) bundler (2.2.4, default: 2.2.3) cgi (default: 0.2.0) csv (default: 3.1.9) date (default: 3.1.0) debug (default: 0.1.0) delegate (default: 0.2.0) did_you_mean (default: 1.5.0) digest (default: 3.0.0) drb (default: 2.0.4) english (default: 0.7.1) erb (default: 2.2.0) etc (default: 1.2.0) fcntl (default: 1.0.0) fiddle (default: 1.0.6) fileutils (default: 1.5.0) find (default: 0.1.0) forwardable (default: 1.3.2) getoptlong (default: 0.1.1) io-console (default: 0.5.6) io-nonblock (default: 0.1.0) io-wait (default: 0.1.0) ipaddr (default: 1.2.2) irb (default: 1.3.0) json (default: 2.5.1) logger (default: 1.4.3) matrix (default: 0.3.1) minitest (5.14.2) mutex_m (default: 0.1.1) net-ftp (default: 0.1.1) net-http (default: 0.1.1) net-imap (default: 0.1.1) net-pop (default: 0.1.1) net-protocol (default: 0.1.0) net-smtp (default: 0.2.1) nkf (default: 0.1.0) observer (default: 0.1.1) open-uri (default: 0.1.0) open3 (default: 0.1.1) openssl (default: 2.2.0) optparse (default: 0.1.0) ostruct (default: 0.3.1) pathname (default: 0.1.0) power_assert (1.2.0) pp (default: 0.1.0) prettyprint (default: 0.1.0) prime (default: 0.1.2) pstore (default: 0.1.1) psych (default: 3.3.0) racc (default: 1.5.1) rake (13.0.3) rbs (1.0.0) rdoc (default: 6.3.0) readline (default: 0.0.2) readline-ext (default: 0.1.1) reline (default: 0.2.0) resolv (default: 0.2.0) resolv-replace (default: 0.1.0) rexml (3.2.4) rinda (default: 0.1.0) rss (0.2.9) securerandom (default: 0.1.0) set (default: 1.0.1) shellwords (default: 0.1.0) singleton (default: 0.1.1) stringio (default: 3.0.0) strscan (default: 3.0.0) syslog (default: 0.1.0) tempfile (default: 0.1.1) test-unit (3.3.7) time (default: 0.1.0) timeout (default: 0.1.1) tmpdir (default: 0.1.1) tracer (default: 0.1.1) tsort (default: 0.1.0) typeprof (0.11.0) un (default: 0.1.0) uri (default: 0.10.1) weakref (default: 0.1.1) yaml (default: 0.1.1) zlib (default: 1.1.0)

インストールした手順
gemfile追加後、
「bundle install」
しました。特にエラーなく終わってたと思います。
※npmからはインストールしてません。

追記

gem list間違ってグローバルを見てました。
ローカルを見ると、js-cookie含む全てインストールされてました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2021/01/09 02:40

gem list でインストール済みであることは確認しましたか?
pecchan

2021/01/09 02:44

有難う御座います。 gemからインストールされてないっぽいと思い、 今まさにそれをやってました。
pecchan

2021/01/09 02:47

gem listに見当たりませんでした。 ですがGemfileに記載してる他のwebpackerやcarrierwaveなんかも見当たりません。 全部入ってないということなんでしょうか? Gemfile.lockには存在してたので安心してたのですが・・・。
m.ts10806

2021/01/09 02:47

実行したコマンドとかどこに書いたとか、具体的にインストール手順記載したほうがいいかもしれません
pecchan

2021/01/09 02:49

はい。gemfileも追記させていただきます。 アドバイス有難う御座います。
m.ts10806

2021/01/09 02:59 編集

ちなみに、bundle installの実行結果はどうだったんでしょう
m.ts10806

2021/01/09 03:00

>しました。特にエラーなく終わってたと思います。 コメントした後に気づきました。失礼。
m.ts10806

2021/01/09 03:09 編集

ちょっとやってみたら、インストール成功してもgem listでは出てこないですね。
pecchan

2021/01/09 03:16

わざわざ試していただき、すみません。有難う御座います。 うーん・・・・ gemfileを作り直してbundle installし直す方法調べてました。
m.ts10806

2021/01/09 03:24

ただ、 require("js.cookie") と書いただけでいけました。 (このケースでシングルクォーテーションとダブルクォーテーションは違いはないと思います)
pecchan

2021/01/09 03:39

試していただき有難う御座います。 シングルクォーテーションとダブルクォーテーション、一応両方試してみました。 前の質問ですが、一応CDNじゃ動作したので解決済みにさせていただきました。 で今回はCDN部分をコメントアウトして、gemをインストールしたらこのような現象になりましたorz
pecchan

2021/01/09 03:41

書いてて思ったのですが、 後にgemで入れた部分を見に行かず、先のCDNで入れてた部分を見に行ってるとかあるんでしょうか?
m.ts10806

2021/01/09 03:41

悩むところではありますね。 jQuery本体などもそうですが、ライブラリやプラグインなど、本体ソースをいじるようなことがなく、 ネットにつなげないユーザーが利用するような環境を想定していないのであれば、CDNで十分に思います。 他のGemが問題なく使えてるなら尚更ですね。
m.ts10806

2021/01/09 03:42

>先のCDNで入れてた部分を どこに書いたのか知らないですが、書き方次第です。 フロント側のコードを調整した場合、毎回キャッシュクリア試した方がいいです。
pecchan

2021/01/09 03:46

はい、プラグイン少し悩みました。。。 これはgemから、これはCDNから、と散見すると保守的に面倒だなと思い。 統一できればと思った次第です。 貴重なアドバイス有難う御座います。 今日解決できなければCDNでいきます。
pecchan

2021/01/09 03:49

書き方次第なんですね。 詳しくないので普通に<head>内に <script src="https://cdn.jsdelivr.net/npm/js-cookie@rc/dist/js.cookie.min.js"></script> としてました。※こういう事でなかったらすみません 「キャッシュクリア」試してみます! まず方法が分からないので調べつつやってみます。 また結果を記載させていただきます!
m.ts10806

2021/01/09 03:53

><head>内に はい。外部サービスURLへのリンクなのでscriptタグに直書きで良いです。 gitからダウンロードして直に配置しても良さそうですけどね。 https://github.com/js-cookie/js-cookie 結局は「そういう機能が書かれているjsファイル」なので。
pecchan

2021/01/09 12:36

キャッシュクリア試してみました。 以下3つ流してみました。 rake tmp:cache:clear bundle exec rails tmp:clear bundle exec rails r 'Rails.cache.clear' ですが現象変わりませんでした(泣) 以上、報告まででした! 有難う御座います!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問