ActiveRecord :: Base определил метод класса has_many.Ruby позволяет вам вызывать методы класса суперкласса во время определения подкласса.
Вы можете сделать это самостоятельно, добавив свои собственные методы класса в ActiveRecord :: Base или свой собственный класс, создав модуль, который вы смешиваете.
Простой пример того, как сделать это самостоятельно:
module MyMixin
def self.included(base)
base.extend ClassMethods # Load class methods
super
end
module ClassMethods
def hello
puts "MyMixin says => Hello World"
end
end
end
ActiveRecord::Base.send :include, MyMixin
Пример использования:
class MyRecord < ActiveRecord::Base
hello
end
при запуске Rails вы увидите это напечатанное на консоли:
MyMixin says => Hello World