バージョン管理に PaperTrail を使用しようとしています 関連付けが元に戻りません。私は何か間違ったことをしているに違いない。これは私のものと同様の設定です。PaperTrail の最新の master ブランチを使用しています。
class Ball < ActiveRecord::Base
has_many :ball_colors
has_many :colors, through: :ball_colors
has_paper_trail
end
class BallColor < ActiveRecord::Base
belongs_to :ball
belongs_to :color
has_paper_trail
end
class Color < ActiveRecord::Base
has_paper_trail
has_many :ball_colors
has_many :balls, through: :ball_colors
end
これが私がやっていることです。
ball = Ball.create()
ball.name = 'Before I add color'
ball.save
ball.colors << Color.create(name: 'blue')
ball.save #although this is unnecessary i think
ball.name = 'After adding color'
ball.save
b = ball.versions.last.reify(:has_many => true)
b.save
b.reload
b.name #=> 'Before I add color'
b.colors #=> [Blue]
b.colors は空にする必要があります。また、ball.versions には、ボールに色を追加したときの変更が含まれていません。「色を追加する前」の作成、更新、「色の追加後」の更新のみがあります。誰かが私が間違っていることを教えてくれますか、または例を教えてくれますか? ドキュメントの Associations セクションを読みましたが、役に立ちませんでした。