私はPaperTrailによって制御されるバージョンを持つCityクラスを持っています。私のシステムにはDeviseによって管理されているユーザーがいます。私はCityクラスの特定のバージョンを編集したユーザーとの関係を持っていたいと思います。Rails 3、PaperTrail and Whodunnitユーザーインスタンス
これにより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
私は、たとえば、特定のユーザーによって行われた版を持つことができます:
をので、私はRailsの3.2.15およびペーパー・トレイル3.0.0を使用して、以下の設定を試してみました行うに
User.last.editions
最後のユーザーからエディションのリスト(PaperTrail :: Versionオブジェクト)を取得します。
はその後、私は最初に市の最後のバージョンを編集したユーザーのユーザーインスタンスを取得するには、例えば、特定の都市を編集したユーザのインスタンスを持つことは簡単だろうを考えた:
# NoMethodError: undefined method `user' for #<PaperTrail::Version:0x000000051d0da8>
City.first.versions.last.user
PaperTrail :: Versionの "user"メソッドにアクセスできるようにモデルを設定するにはどうすればよいですか?
Ps .:私がしたようにModel PaperTrail :: Versionを作成する必要があるかどうかはわかりませんが、その方向で別の方法を見つけられませんでした。
完璧を返します。私の作業構成があります!これはデフォルトではペパーレールで働いている必要があります! – Flezcano
paper_trailのv4.0.0.beta2で、 'has_paper_trail:class_name => 'バージョン'は' has_paper_trail'の後にカンマなしで動作します。 – Nobu