cyu / rack-cors

Rack Middleware for handling Cross-Origin Resource Sharing (CORS), which makes cross-origin AJAX possible.
MIT License
3.26k stars 263 forks source link

Unitialized constant Rack::Cors Rails 5.2.3 - edit: specific to rack-cors 1.0.3 #183

Open marcnjaramillo opened 5 years ago

marcnjaramillo commented 5 years ago

UPDATE: Issue is specific to rack-cors 1.0.3

I tried several different approaches to figure out which gem was causing the error. I knew it wasn't ruby 2.6.2 because my older Rails app worked just fine. I then created a new Rails 5.1.5 app, and suddenly it wasn't working. I checked the Gemfile.lock and saw that rack-cors was set to 1.0.3, and when I compared this to my older app I noticed that the same gem was set to 1.0.2. I set the gem to 1.0.2 and the error went away. I'm not sure what changed between versions, but something is causing the error.

I am trying to get this set up, and I did everything I was supposed to: installed rack-cors gem and uncommented the code in cors.rb. However, I can't do anything in the app now. I keep getting this error:

NameError: uninitialized constant Rack::Cors
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/active_support.rb:79:in `block in load_missing_constant'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/active_support.rb:8:in `without_bootsnap_cache'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/active_support.rb:79:in `rescue in load_missing_constant'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/active_support.rb:58:in `load_missing_constant'
/Users/marcjaramillo/fullstack-dev-portfolio/config/initializers/cors.rb:8:in `<main>'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:54:in `load'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:54:in `load'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/railties-5.2.3/lib/rails/engine.rb:657:in `block in load_config_initializer'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/activesupport-5.2.3/lib/active_support/notifications.rb:170:in `instrument'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/railties-5.2.3/lib/rails/engine.rb:656:in `load_config_initializer'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/railties-5.2.3/lib/rails/engine.rb:614:in `block (2 levels) in <class:Engine>'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/railties-5.2.3/lib/rails/engine.rb:613:in `each'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/railties-5.2.3/lib/rails/engine.rb:613:in `block in <class:Engine>'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/railties-5.2.3/lib/rails/initializable.rb:32:in `instance_exec'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/railties-5.2.3/lib/rails/initializable.rb:32:in `run'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/railties-5.2.3/lib/rails/initializable.rb:61:in `block in run_initializers'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/railties-5.2.3/lib/rails/initializable.rb:50:in `each'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/railties-5.2.3/lib/rails/initializable.rb:50:in `tsort_each_child'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/railties-5.2.3/lib/rails/initializable.rb:60:in `run_initializers'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/railties-5.2.3/lib/rails/application.rb:361:in `initialize!'
/Users/marcjaramillo/fullstack-dev-portfolio/config/environment.rb:5:in `<main>'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `block in require_with_bootsnap_lfi'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `require_with_bootsnap_lfi'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/railties-5.2.3/lib/rails/application.rb:337:in `require_environment!'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/railties-5.2.3/lib/rails/application.rb:520:in `block in run_tasks_blocks'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/railties-5.2.3/lib/rails/commands/rake/rake_command.rb:23:in `block in perform'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/railties-5.2.3/lib/rails/commands/rake/rake_command.rb:20:in `perform'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/railties-5.2.3/lib/rails/command.rb:48:in `invoke'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/railties-5.2.3/lib/rails/commands.rb:18:in `<main>'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `block in require_with_bootsnap_lfi'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `require_with_bootsnap_lfi'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
/Users/marcjaramillo/fullstack-dev-portfolio/bin/rails:9:in `<top (required)>'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/spring-2.0.2/lib/spring/client/rails.rb:28:in `load'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/spring-2.0.2/lib/spring/client/rails.rb:28:in `call'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/spring-2.0.2/lib/spring/client/command.rb:7:in `call'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/spring-2.0.2/lib/spring/client.rb:30:in `run'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/spring-2.0.2/bin/spring:49:in `<top (required)>'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/spring-2.0.2/lib/spring/binstub.rb:31:in `load'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/spring-2.0.2/lib/spring/binstub.rb:31:in `<top (required)>'
/Users/marcjaramillo/fullstack-dev-portfolio/bin/spring:15:in `require'
/Users/marcjaramillo/fullstack-dev-portfolio/bin/spring:15:in `<top (required)>'
bin/rails:3:in `load'
bin/rails:3:in `<main>'

Caused by:
NameError: uninitialized constant Rack::Cors
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/active_support.rb:60:in `block in load_missing_constant'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/active_support.rb:16:in `allow_bootsnap_retry'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/active_support.rb:59:in `load_missing_constant'
/Users/marcjaramillo/fullstack-dev-portfolio/config/initializers/cors.rb:8:in `<main>'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:54:in `load'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:54:in `load'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/railties-5.2.3/lib/rails/engine.rb:657:in `block in load_config_initializer'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/activesupport-5.2.3/lib/active_support/notifications.rb:170:in `instrument'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/railties-5.2.3/lib/rails/engine.rb:656:in `load_config_initializer'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/railties-5.2.3/lib/rails/engine.rb:614:in `block (2 levels) in <class:Engine>'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/railties-5.2.3/lib/rails/engine.rb:613:in `each'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/railties-5.2.3/lib/rails/engine.rb:613:in `block in <class:Engine>'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/railties-5.2.3/lib/rails/initializable.rb:32:in `instance_exec'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/railties-5.2.3/lib/rails/initializable.rb:32:in `run'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/railties-5.2.3/lib/rails/initializable.rb:61:in `block in run_initializers'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/railties-5.2.3/lib/rails/initializable.rb:50:in `each'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/railties-5.2.3/lib/rails/initializable.rb:50:in `tsort_each_child'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/railties-5.2.3/lib/rails/initializable.rb:60:in `run_initializers'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/railties-5.2.3/lib/rails/application.rb:361:in `initialize!'
/Users/marcjaramillo/fullstack-dev-portfolio/config/environment.rb:5:in `<main>'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `block in require_with_bootsnap_lfi'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `require_with_bootsnap_lfi'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/railties-5.2.3/lib/rails/application.rb:337:in `require_environment!'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/railties-5.2.3/lib/rails/application.rb:520:in `block in run_tasks_blocks'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/railties-5.2.3/lib/rails/commands/rake/rake_command.rb:23:in `block in perform'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/railties-5.2.3/lib/rails/commands/rake/rake_command.rb:20:in `perform'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/railties-5.2.3/lib/rails/command.rb:48:in `invoke'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/railties-5.2.3/lib/rails/commands.rb:18:in `<main>'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `block in require_with_bootsnap_lfi'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `require_with_bootsnap_lfi'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
/Users/marcjaramillo/fullstack-dev-portfolio/bin/rails:9:in `<top (required)>'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/spring-2.0.2/lib/spring/client/rails.rb:28:in `load'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/spring-2.0.2/lib/spring/client/rails.rb:28:in `call'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/spring-2.0.2/lib/spring/client/command.rb:7:in `call'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/spring-2.0.2/lib/spring/client.rb:30:in `run'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/spring-2.0.2/bin/spring:49:in `<top (required)>'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/spring-2.0.2/lib/spring/binstub.rb:31:in `load'
/Users/marcjaramillo/.rvm/gems/ruby-2.6.2/gems/spring-2.0.2/lib/spring/binstub.rb:31:in `<top (required)>'
/Users/marcjaramillo/fullstack-dev-portfolio/bin/spring:15:in `require'
/Users/marcjaramillo/fullstack-dev-portfolio/bin/spring:15:in `<top (required)>'
bin/rails:3:in `load'
bin/rails:3:in `<main>'
Tasks: TOP => routes => environment

I have a different application that uses Rails 5.1.5, and it worked as expected. Since the application I'm working on now uses Rails 5.2.3 I wondered if maybe there is an issue with Rails 5.2.3. I updated my old app to Rails 5.2.3 using rails app:update and sure enough I get the same error now.

Has anyone else seen this? I can't find anything online about this.

AspenJames commented 5 years ago

Also just had this issue, reverting to 1.0.2 seems to have fixed it - thank you