Обновление до Rails 5.1, гем `query_reviewer` и устаревший метод` alias_method_chain` - PullRequest
0 голосов
/ 14 ноября 2018

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)

Здесь я прочитал много связанных вопросов и понял, что метод alias_method_chains устарел в Rails 5.1 ...

Однако здесь проблема исходит от самоцвета, особенно самоцвета query_reviewer ( github , rubygems ): Последняя версия этого драгоценного камня - 0.2.2 (16 сентября 2013 г.) и включает устаревший метод:

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, и очевидным, но болезненным вариантом было бы поискать другой драгоценный камень ... Но, возможно, у кого-то возникла та же проблема и он нашел лучший способ ответить на этот 1-й вопрос как пользователь StackOverflow;)?

Заранее спасибо

1 Ответ

0 голосов
/ 23 апреля 2019

В 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 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...