【发布时间】:2019-04-17 16:54:36
【问题描述】:
Rails 社区!
我在将 Rails 项目从 Rails 4.2 升级到 Rails 5.2 时遇到问题,与从 Rails 5.0 到 5.1 的步骤相关的问题
/gems/query_reviewer-0.2.2/lib/query_reviewer/mysql_adapter_extensions.rb:4:in `included': undefined method `alias_method_chain' for ActiveRecord::ConnectionAdapters::Mysql2Adapter:Class (NoMethodError)
我在这里阅读了很多相关问题,并且我了解到 Rails 5.1 不推荐使用方法 alias_method_chains...
但是,这里的问题来自 gem,尤其是 gem query_reviewer (github, rubygems):
此 gem 的最新版本是 0.2.2(2013 年 9 月 16 日),包含已弃用的方法:
module QueryReviewer
module MysqlAdapterExtensions
def self.included(base)
base.alias_method_chain :select, :review
base.alias_method_chain :update, :review
base.alias_method_chain :insert, :review
base.alias_method_chain :delete, :review
end
显然,Rails 5.1 不提供此 gem,显然但痛苦的选择是寻找其他 gem...但是,也许有人遇到了同样的问题并找到了更好的方法来回答第一个问题作为 StackOverflow 用户 ;) ?
提前致谢
【问题讨论】:
-
分叉,重写并将 gem 指向你的新仓库
gem 'query_reviewer ', :git => 'git://github.com/username/repo.git':) -
不幸的是,如果您想将 Rails 5.x 与不是为它设计的 gem 一起使用,这是唯一的解决方案 - 它比听起来容易!
-
特别是在这种情况下,因为它应该像使用
Module#prependThis Article might help 一样简单
标签: ruby-on-rails ruby rubygems