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

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

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

Haml(HTML abstraction markup language)は、HTML/XHTMLを効率的に記述するためのマークアップ言語および記法です。

Ruby on Rails 6

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

Bootstrap

BootstrapはウェブサイトデザインやUIのWebアプリケーションを素早く 作成する可能なCSSフレームワークです。 Twitter風のデザインを作成することができます。

Q&A

解決済

1回答

2165閲覧

Rails6 Bootstrap javascriptが読み込めない modal is not a function

mobile105

総合スコア20

Haml

Haml(HTML abstraction markup language)は、HTML/XHTMLを効率的に記述するためのマークアップ言語および記法です。

Ruby on Rails 6

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

Bootstrap

BootstrapはウェブサイトデザインやUIのWebアプリケーションを素早く 作成する可能なCSSフレームワークです。 Twitter風のデザインを作成することができます。

0グッド

1クリップ

投稿2020/09/11 05:40

###Uncaught TypeError: $(...).modal is not a function

haml

1【destroy.js.haml】 2 3$("#Modal1").modal('show');

console

1Uncaught TypeError: $(...).modal is not a function

functionが見つからないとエラーが出てしまいます。

###CDNで読み込んでみる

haml

1【application.html.haml】 2 3%script{crossorigin: "anonymous", integrity: "sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo", src: "https://code.jquery.com/jquery-3.3.1.slim.min.js"} 4%script{crossorigin: "anonymous", integrity: "sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1", src: "https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"} 5%script{crossorigin: "anonymous", integrity: "sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM", src: "https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"}

正常に動作します。

Webpackerで読み込みたい

application.html.hamlで定義したCDNは一旦コメントアウトしてwebpackを通して読み込めるようにbootstrapの設定を行います。

haml

1【application.html.haml】 2 3= javascript_pack_tag 'application' 4= stylesheet_pack_tag 'application'

javascript

1【app/javascript/packs/application.js】 2 3require("@rails/ujs").start() 4require("turbolinks").start() 5require("@rails/activestorage").start() 6require("channels") 7require("jquery") 8import 'bootstrap' 9import '../src/application.scss'

javascript

1/config/webpack/environment.js】 2 3const { environment } = require('@rails/webpacker') 4const { VueLoaderPlugin } = require('vue-loader') 5const vue = require('./loaders/vue') 6// jQueryとBootstapのJSを使えるように 7const webpack = require('webpack') 8environment.plugins.prepend( 9 'Provide', 10 new webpack.ProvidePlugin({ 11 $: 'jquery/src/jquery', 12 jQuery: 'jquery/src/jquery', 13 Popper: ['popper.js', 'default'] 14 }) 15) 16environment.plugins.prepend('VueLoaderPlugin', new VueLoaderPlugin()) 17environment.loaders.prepend('vue', vue) 18module.exports = environment

css

1【app/javascript/src/application.scss】 2 3@import '~bootstrap/scss/bootstrap';

yarn add jquery bootstrap popper.jsでBootstrapとpopper.jsとjqueryはインストールしてあります。

設定がおかしい部分などございましたらご教示ただけますと幸いです。

Ruby 2.7.1
Rails 6.0.3.2
dockerコンテナ(nginx mysql rails)

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

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

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

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

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

guest

回答1

0

ベストアンサー

下記を参考にしていただくとよいかと思います。

https://teratail.com/questions/280958

投稿2020/09/11 10:31

no1knows

総合スコア3365

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問