ActionDispatch::Request:Class 的未定义方法“alias_method_chain”

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

NoMethodError: ActionDispatch::Request:Class

的未定义方法“alias_method_chain”

我在安装 wiselinks 后遇到这个问题 gem。

Ruby 版本:Ruby 2.4.0

Rails 版本:Rails 5.1.3

耙子中止!

NoMethodError:ActionDispatch::Request:Class /home/wscube/.rvm/gems/ruby-2.4.0/gems/wiselinks-1.2.1/lib/wiselinks/request 的未定义方法 alias_method_chain'。 rb:4:included' /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:在 run_initializers' /home/wscube/.[ 中的块中=33=].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/.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 放弃了 alias_method_chain,取而代之的是 Module#prependWiselinks 自 2014 年以来未更新,与 Rails 5.

不兼容

您的选择有限:

  1. 使用旧版本 Rails 以便您可以使用 Wiselinks。
  2. 使用 Wiselinks 以外的东西。
  3. 尝试让 Wiselinks 作者将其更新为更新版本的 Rails。
  4. Fork Wiselinks 并更新它以使用最新的 Rails 你自己。有一个pull request for this,但它已经闲置了将近一个月。

我倾向于 (2) 除非你想分叉它并负责维护分叉。 Rails 世界里四年没更新的东西可能已经被抛弃了。