Да. Переопределите это в вашем ApplicationRecord
. Все модели должны иметь подкласс ApplicationRecord
, а не ActiveRecord::Base
.
. Для обеспечения согласованности используйте строковый ключ. И подумайте, как вы хотите обрабатывать столкновения. Вы также захотите обрабатывать коллизии с существующими ключами, молча перезаписывать их, вероятно, не очень хорошая идея.
class ApplicationRecord < ActiveRecord::Base
self.abstract_class = true
def as_json
super.merge("date" => DateTime.current) { |key, oldval, newval|
raise "#{self} has existing #{key} => #{oldval.inspect}"
}
end
end
class Book < ApplicationRecord
...
end
class User < ApplicationRecord
...
end