Я использую PaperTrail
для моделей версий. Для одной модели это работает очень хорошо. Однако мне не удается восстановить простое отношение has_many, хотя документы указывают, что это должно работать.PaperTrail retrieve has_many association
У меня есть две простые модели:
class Template < ActiveRecord::Base
has_many :assets, dependent: :destroy
has_paper_trail
#also has a title
end
class Asset < ActiveRecord::Base
belongs_to :template
has_paper_trail
has_attached_file :file, :path => ':class/:id/:filename.:extension'
do_not_validate_attachment_file_type :file
end
Это процедура я использую для проверки версий.
template = Template.create
template.title = 'initial'
template.assets.create()
template.save
title1 = template.title #initial
count1 = template.assets.count #1
template.title = 'v2'
template.assets.create()
template.save
title2 = template.title #v2
count2 = template.assets.count #2
template_old = template.versions.last.reify(:has_many => true)
title3 = template_old.title #initial
count3 = template_old.assets.count #2, should be 1
template.title = 'v3'
template.assets.last.destroy()
template.save
title4 = template.title #v3
count4 = template.assets.count #1
template_old = template.versions.last.reify(:has_many => true)
title5 = template_old.title #v2
count5 = template_old.assets.count #1, should be 2
Я отследил это к version_concern.rb reify_has_many_directly метода. Но мне кажется, что он всегда просто восстанавливает отношения с текущей версией.
Любые идеи?