【问题标题】:undefined method `alias_method_chain' for ActionDispatch::Request:ClassActionDispatch::Request:Class 的未定义方法“alias_method_chain”
【发布时间】:2018-10-30 18:54:16
【问题描述】:

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

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

Ruby 版本:Ruby 2.4.0

Rails 版本:Rails 5.1.3

rake 中止!

NoMethodError:未定义方法 alias_method_chain' 用于 ActionDispatch::Request:Class /home/wscube/.rvm/gems/ruby-2.4.0/gems/wiselinks-1.2.1/lib/wiselinks/request.rb:4:包括在内' /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 初始化! /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

【问题讨论】:

    标签: ruby-on-rails ruby wiselinks


    【解决方案1】:

    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 世界中四年没有更新的东西可能已经被放弃了。

    【讨论】:

    • 您能分享一下替代解决方案吗?
    • 谢谢,现在我正在使用 Turbolinkslink
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-17
    • 2015-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-14
    相关资源
    最近更新 更多