🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Ruby on Rails

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

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

2153閲覧

Rails6 での Toastr の使い方

NCC1701

総合スコア1680

Ruby on Rails

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

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2019/09/14 04:46

編集2019/09/16 02:40

前提・実現したいこと

Ruby on Rails 6 (webpack, webpacker)で Toastr を使えるようにしたい

質問では、試しにhtmlに直接記載してますが、最終的には**.js.erbなどでAjaxを利用する場合も含めて使う予定です。

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

コンソールのエラー表示です。Toastr がうまくロードできません(たぶん)

ReferenceError: toastr is not defined <匿名> http://localhost:3000/users:415

該当のソースコード

index.html.erbの最下部に下記を追加して試してます。JQueryには問題ありませんでした。

html

1<%= link_to '+', new_users_path %> 2 3<h1>JQuery</h1> 4<p id="hoge">JQueryが使えるか確認</p> 5 6<script> 7 $("#hoge").css("color","red"); 8 toastr.info('info型のトーストの表示'); 9</script> 10

試したこと

yarn add jquery yarn add toastr

の後に
./app/javascript/packs/application.js

javascript

1require("jquery") 2require("toastr")

を追加してます

回答に応答する追記

config/webpack/environment.jsを次のように変更

javascript

1const { environment } = require('@rails/webpacker') 2 3const webpack = require('webpack') 4environment.plugins.prepend('Provide', 5 new webpack.ProvidePlugin({ 6 $: 'jquery/src/jquery', 7 jQuery: 'jquery/src/jquery', 8 Popper: ['popper.js', 'default'], 9 Toastr: 'toastr' 10 }) 11 ) 12 13module.exports = environment

./app/javascript/packs/application.jsを次のように追記

javascript

1import toastr from 'toastr'; 2window.toastr = toastr;

補足情報(FW/ツールのバージョンなど)

ruby on rails 6 (on Docker)

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

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

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

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

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

guest

回答2

0

自己解決

app/javascript/src/application.scssに以下の内容を追記したらうまくいきました。

css

1@import '~toastr/toastr'; 2

投稿2019/09/19 06:43

NCC1701

総合スコア1680

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

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

0

Webpackerに書いたものは、デフォルトでWebpack内にローカルなものとなりますので、ビューに書いた<script>からそのままでは使えません。方法は2つ考えられます。

  • Webpackと無関係にtoastrを読み込む(Webpack側で使いたい場合にはexternalsを使うことで共用可能)
  • Webpack内でwindow.toastr = toastr;のようにwindow経由でエクスポートする

投稿2019/09/14 12:58

maisumakun

総合スコア145975

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

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

NCC1701

2019/09/16 02:44

ありがとうございます。 'info型のトーストの表示'が一定時間表示された後に消えるというところまでたどり着きました。(変更内容はここではインデントが効かないので質問事項に追記しました) ただし「ただの文字列」が表示されるだけでcssが適用されませんでした。(jqueryは適用された?) まだ、書き足りないファイルがあるようなのですが、どこをいじれば良いのか、参考になるサイト等がありましたら教えてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問