Я рекомендую включать модуль с вашим кодом только в те классы, которые нуждаются в этой функциональности.Включать ваш код в ActiveRecord::Base
на самом деле не рекомендуется, другие драгоценные камни, которые вы можете использовать, могут конфликтовать с ним.
Если вам нужно, чтобы ваш код был доступен во всех ваших моделях ActiveRecord, определите его в ApplicationRecord
,Поскольку все ваши модели будут наследоваться от него, все получат функциональность.
Если вы хотите добавить метод класса в свой класс AR, создайте модуль с функцией и extend
его из вашего класса:
module A
def foo
"Hi"
end
end
class User < ApplicationRecord
extend A
end
User.foo # => "Hi"
Если вам нужно сделать больше вещей, таких как объявление областей, использование перехватчиков ActiveRecord и т. Д., Вам нужно будет использовать проблемы, см. Здесь