简体   繁体   中英

undefined method `alias_method_chain' for ActionDispatch::Request:Class

NoMethodError: undefined method `alias_method_chain' for ActionDispatch::Request:Class

I facing this issue after install wiselinks gem.

Ruby version: Ruby 2.4.0

Rails version: Rails 5.1.3

rake aborted!

NoMethodError: undefined method alias_method_chain' for ActionDispatch::Request:Class /home/wscube/.rvm/gems/ruby-2.4.0/gems/wiselinks-1.2.1/lib/wiselinks/request.rb:4:inincluded' /home/wscube/.rvm/gems/ruby-2.4.0/gems/wiselinks-1.2.1/lib/wiselinks/rails.rb:9:in include' /home/wscube/.rvm/gems/ruby-2.4.0/gems/wiselinks-1.2.1/lib/wiselinks/rails.rb:9:inblock in class:Engine' /home/wscube/.rvm/gems/ruby-2.4.0/gems/railties-5.1.3/lib/rails/initializable.rb:30:in instance_exec' /home/wscube/.rvm/gems/ruby-2.4.0/gems/railties-5.1.3/lib/rails/initializable.rb:30:inrun' /home/wscube/.rvm/gems/ruby-2.4.0/gems/railties-5.1.3/lib/rails/initializable.rb:59:in block in run_initializers' /home/wscube/.rvm/gems/ruby-2.4.0/gems/railties-5.1.3/lib/rails/initializable.rb:58:inrun_initializers' /home/wscube/.rvm/gems/ruby-2.4.0/gems/railties-5.1.3/lib/rails/application.rb:353:in initialize!' /home/wscube/Upstge/upstge-latest-version/config/environment.rb:5:in' /home/wscube/.rvm/gems/ruby-2.4.0/gems/activesupport-5.1.3/lib/active_support/dependencies.rb:292:in require' /home/wscube/.rvm/gems/ruby-2.4.0/gems/activesupport-5.1.3/lib/active_support/dependencies.rb:292:inblock in require' /home/wscube/.rvm/gems/ruby-2.4.0/gems/activesupport-5.1.3/lib/active_support/dependencies.rb:258:in load_dependency' /home/wscube/.rvm/gems/ruby-2.4.0/gems/activesupport-5.1.3/lib/active_support/dependencies.rb:292:inrequire' /home/wscube/.rvm/gems/ruby-2.4.0/gems/railties-5.1.3/lib/rails/application.rb:329:in require_environment!' /home/wscube/.rvm/gems/ruby-2.4.0/gems/railties-5.1.3/lib/rails/application.rb:445:inblock in run_tasks_blocks' /home/wscube/.rvm/gems/ruby-2.4.0/gems/sprockets-rails-3.2.0/lib/sprockets/rails/task.rb:62:in block (2 levels) in define' /home/wscube/.rvm/gems/ruby-2.4.0@global/gems/rake-12.0.0/exe/rake:27:in' /home/wscube/.rvm/gems/ruby-2.4.0/bin/ruby_executable_hooks:15:in eval' /home/wscube/.rvm/gems/ruby-2.4.0/bin/ruby_executable_hooks:15:in

Rails 5.1 dropped alias_method_chain in favor of Module#prepend ; Wiselinks hasn't been updated since 2014 and is not compatible with Rails 5.

Your options are limited:

  1. Use an older version of Rails so that you can use Wiselinks.
  2. Use something other than Wiselinks.
  3. Try to get the Wiselinks author to update it for newer versions of Rails.
  4. Fork Wiselinks and update it to work with the latest Rails yourself. There is a pull request for this but it has been sitting idle for almost a month.

I'd lean towards (2) unless you wanted to fork it and take responsibility for maintaining the fork. Something that hasn't been updated in four years in the Rails world has probably been abandoned.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM