Как добавить метод в модель версий 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
Другие вопросы по тегам