简体   繁体   English

ActionDispatch :: Request:Class的未定义方法`alias_method_chain'

[英]undefined method `alias_method_chain' for ActionDispatch::Request:Class

NoMethodError: undefined method `alias_method_chain' for ActionDispatch::Request:Class NoMethodError:ActionDispatch :: Request:Class的未定义方法“ alias_method_chain”

I facing this issue after install wiselinks gem. 安装wiselinks gem后,我面临此问题。

Ruby version: Ruby 2.4.0 Ruby版本:Ruby 2.4.0

Rails version: Rails 5.1.3 Rails版本: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!' NoMethodError:ActionDispatch :: Request:Class /home/wscube/.rvm/gems/ruby-2.4.0/gems/wiselinks-1.2.1/lib/wiselinks/request.rb:4:inincluded'的未定义方法alias_method_chain'/ 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:在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:在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:正在初始化! /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/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:在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:在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 /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:在块中(2个级别)在定义'/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 ; Rails 5.1放弃了alias_method_chain ,转而使用Module#prepend Wiselinks hasn't been updated since 2014 and is not compatible with Rails 5. Wiselinks自2014年以来未进行更新,并且与Rails 5不兼容。

Your options are limited: 您的选择受到限制:

  1. Use an older version of Rails so that you can use Wiselinks. 使用较旧版本的Rails,以便可以使用Wiselinks。
  2. Use something other than Wiselinks. 使用Wiselinks以外的其他工具。
  3. Try to get the Wiselinks author to update it for newer versions of Rails. 尝试让Wiselinks作者将其更新为更新版本的Rails。
  4. Fork Wiselinks and update it to work with the latest Rails yourself. 前叉Wiselinks并对其进行更新,以便自己与最新的Rails一起使用。 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. 我倾向于(2),除非您想分叉它并负责维护该分叉。 Something that hasn't been updated in four years in the Rails world has probably been abandoned. 在Rails领域中四年未更新的某些东西可能已被放弃。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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