У меня есть стандартная модель ActiveRecord со следующим:
class MyModel < ActiveRecord::Base
custom_method :first_field, :second_field
end
В данный момент этот custom_method выбирается модулем, отправленным ActiveRecord :: Base.Функциональность в основном работает, но, конечно, она присоединяется к каждому классу модели, а не только к MyModel.Так что, если у меня MyModel и MyOtherModel в одном действии, предполагается, что MyOtherModel также имеет custom_method: first_field,: second_field.
Итак, мой вопрос: как мне прикрепить метод (например, def custom_method(* args)) до каждого класса, который наследуется от ActiveRecord :: Base, но не путем присоединения его к ActiveRecord :: Base непосредственно?
Любые идеи приветствуются.
===
Редактировать
В настоящее время метод custom_method присоединен к ActiveRecord :: Base следующим образом:
module MyCustomModule
def self.included(base)
base.extend(self)
end
def custom_method(*args)
# Zippity doo dah - code goes here
end
end
ActiveRecord::Base.send(:include, MyCustomModule)