jquery-rails icon indicating copy to clipboard operation
jquery-rails copied to clipboard

Rails 7 with importmap

Open mohloko opened this issue 2 years ago • 3 comments

How I can make it work?

mohloko avatar Sep 30 '22 13:09 mohloko

I spent whole afternoon learned how to import jquery in Rails 7

edit in Gemfile and run bundle install

gem 'jquery-rails'

edit application.js

// app/javascript/application.js
// jquery
import 'jquery'
import 'jquery_ujs'

edit importmap.rb

# config/importmap.rb

pin "jquery", to: "jquery.min.js", preload: true
pin "jquery_ujs", to: "jquery_ujs.js", preload: true

edit config/initializers/assets.rb

# config/initializers/assets.rb


Rails.application.config.assets.precompile += %w( jquery.min.js jquery_ujs.js )

finally should work

jubilee2 avatar Jan 17 '23 03:01 jubilee2

and if you want a specific version of jQuery (2 or 3):

// app/javascript/application.js

import 'jquery'
import 'jquery_ujs'
# config/importmap.rb

pin "jquery", to: "jquery3.min.js", preload: true
pin "jquery_ujs", to: "jquery_ujs.js", preload: true
# config/initializers/assets.rb

Rails.application.config.assets.precompile += %w( jquery3.min.js jquery_ujs.js )

rahulbir avatar Aug 31 '23 15:08 rahulbir

The solution is working.

If you use Sprockets 4.x then it's recommended to use app/assets/config/manifest.js instead of Rails.application.config.assets.precompile.

# app/assets/config/manifest.js
//= link jquery.min.js
//= link jquery_ujs.js

ArturT avatar Oct 19 '23 14:10 ArturT