簡體   English   中英

升級到Rails 5.1,gem`query_reviewer`和不贊成使用的方法`alias_method_chain`

[英]Upgrade to Rails 5.1, gem `query_reviewer` and deprecated method `alias_method_chain`

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_reviewergithubrubygems ):這個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

顯然,該gem在Rails 5.1中不可用,明顯但痛苦的選擇是尋找其他gem ...但是,也許有人遇到了同樣的問題,並且找到了一個更好的方法來作為StackOverflow用戶來回答第一個問題;)

預先感謝

在Rails 5+中,alias_method_chain已刪除,因此可以代替alias_method來使用,如下所示

  base.alias_method :select_without_review, :select
  base.alias_method :select, :select_with_review
  base.alias_method :update_without_review, :update
  base.alias_method :update, :update_with_review
  base.alias_method :insert_without_review, :insert
  base.alias_method :insert, :insert_with_review
  base.alias_method :delete_without_review, :delete
  base.alias_method :delete, :delete_with_review 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM