Как добавить метод в модель версий Paper_trail?
Я хочу создать следующий метод для версий paper_trail:
def user
User.find self.whodunnit.to_i
end
Так что я могу получить доступ к пользователю версии в моем приложении, как будто оно имеет belongs_to
связь.
Где я должен поместить эту функцию (имя папки и файла), чтобы переопределить / добавить ее в модель версии paper_trail?
1 ответ
Решение
Вы можете поместить это в инициализатор (например, config/initializers/paper_trail.rb
) который открывает PaperTrail::Version
учебный класс:
module PaperTrail
class Version < ActiveRecord::Base
def user
User.find self.whodunnit.to_i
end
end
end
Вы хотите подтвердить, что ваш Version
модель PaperTrail::Version
; старые версии драгоценного камня используют только Version
, В этом случае просто удалите оператор внешнего модуля.
Вы также можете создать собственный класс, наследующий от Version
и укажите, что в вашем has_paper_trail
вызов. Например (из README):
class PostVersion < PaperTrail::Version
# custom behaviour, e.g:
self.table_name = :post_versions
end
class Post < ActiveRecord::Base
has_paper_trail :class_name => 'PostVersion'
end