У меня есть класс City, который имеет версии, управляемые PaperTrail. Моя система имеет пользователей, которыми управляет Devise. Я хотел бы иметь отношение между пользователем, который отредактировал определенную версию класса City.Rails 3, экземпляр пользователя PaperTrail и Whodunnit
Для этого я попытался следующую конфигурацию с помощью Rails 3.2.15 и Paper Trail 3.0.0:
class City < ActiveRecord::Base
has_paper_trail
end
class User < ActiveRecord::Base
has_many :editions, :foreign_key => 'whodunnit', :class_name => "PaperTrail::Version"
end
class PaperTrail::Version < ActiveRecord::Base
belongs_to :user
end
С этим я могу иметь издания, сделанные конкретным пользователем, например:
User.last.editions
, чтобы получить список выпусков (PaperTrail :: Объекты версии) от последнего пользователя.
Тогда я думал было бы просто иметь экземпляр в качестве пользователя, который редактировал конкретный город, например, чтобы получить пользовательский экземпляр пользователя, который редактировал последнюю версию первого Город:
# NoMethodError: undefined method `user' for #<PaperTrail::Version:0x000000051d0da8>
City.first.versions.last.user
Если это не так, как мне настроить мои модели на доступ к методу «пользователь» на PaperTrail :: Version?
Пс .: Я не уверен, что должен был создать модель PaperTrail :: Version, как и я, но я не понял другого пути в этом направлении.
отлично! это должно работать по умолчанию в папке! – Flezcano
На v4.0.0.beta2 из paper_trail, 'has_paper_trail: class_name => 'Version'' работает без запятой после' has_paper_trail'. – Nobu