Когда два движка Rails определяют метод с одинаковым именем, который переопределяет - PullRequest
1 голос
/ 27 апреля 2020

Если приложение Rails имеет два движка, которые определяют один и тот же метод, какая версия «выиграет»? Как определяется, какой из них выполняется, когда вызывается имя метода?

Например, оба движка Rails blacklight и другой движок Rails, предназначенный для изменения функциональности Blacklight определите метод следующим образом:

module Blacklight
  class SuggestSearch
    def suggestions
      ...
    end
  end
end

Определение метода одинаково в двух движках, но с ... вместо различного содержимого. Второй из двигателей предназначен для переопределения функциональности первого.

Два двигателя используются в одном приложении, например так:

gem 'blacklight'
gem 'trln_argon'

Как рельсы узнают, какой двигатель модифицирован другой? Как определяется определение suggestions для второго двигателя?

...