web-dev-qa-db-ja.com

Rails 6アプリケーションでGemからのjsファイルを使用する方法

だから私はかなり長い間Railsを使用しています。しかしRails 6を使用すると、実際に移動するのに苦労しています。私が使用するいくつかのカスタム宝石がありますアセットともの、そして私はjsファイルをロードする方法を理解できません。

私が慣れていること

application.js

//= require activestorage
//= require jquery-3.3.1.min
//= require popper.min
//= require bootstrap
//= require mdb
//= require wysiwyg
//= require addons/pickr.min
//= require modules/buttons
//= require modules/cards
//= require modules/waves
//= require activestorage
//= require turbolinks
//= require_tree .

しかし、これはRails 6に読み込まれません。ソリューションにパッチを適用するためにアプリに複数のjsファイルとコード行をアプリに追加することを含まない、このための基本的なソリューションをオンラインで見つけることができませんでした。一緒にやってみました

app/javascript/packs/application.js

require("@Rails/ujs").start()
require("turbolinks").start()
require ("jquery-3.3.1.min").start()
require ("popper.min").start()
require ("bootstrap").start()
require ("mdb").start()
require ("wysiwyg").start()
require ("addons/pickr.min").start()
require ("modules/buttons").start()
require ("modules/cards").start()
require ("modules/waves").start()
require("@Rails/activestorage").start()
require("channels")

アセットはgem内の正しい場所にあります(つまり、Rails 5アプリはすべてを期待どおりにロードします)。これらのいくつかを糸で追加できますが、使用したいですbootstrapが機能するだけでなく、gemからの実際のファイルもこれに簡単な解決策はありますか?requireのパスを調整してみましたが、どちらも機能しませんでした。

助けてくれてありがとう!

11
Rockwell Rice

Gemファイルから直接取得する必要があります。

application.jsからapplication.js.erbおよびdemirソリューションに従います。 nextを使用して複数のファイルをインポートすることもできます。

<% ['file_1', 'file_2'].each do |file| %>
 import "<%= File.join(Gem.loaded_specs['my_gem'].full_gem_path, 'app', 'assets', 'javascripts', file) %>";
<% end %>
0
Gerardo S