我有兴趣在我的rails应用程序中使用vestal_versions gem,但我想知道是否有人知道我是否可以创建新版本,但实际上并没有更新相关的ActiveRecord。
例如,如果我有一个名为“jim”的用户,并且我创建了一个名为“steve”的新版本,我希望能够在不更改父记录的情况下保留该版本,直到我想要稍后(使用revert_to!(newer_version)或其他一些)。
如果这没有内置到gem中,那么我应该开始修补哪些线索?
答案 0 :(得分:0)
在调查了这个宝石的行为之后,我发现这不是一个真正建立起来的东西。
您可以使用以下内容强制执行此操作:
def create_version
merge_version_changes
create_version
end
在'版本化'模型中,但是当您使用以下内容创建一个新版本,其中包含您已放入实时ActiveRecord的更改而不修改父对象的表:
blah = Blah.first
blah.version
它会告诉您使用的是最新版本,但没有加载该数据(因为它从未更改过)。如果您使用:
blah.revert_to(:last)
它不会改变您的记录,因为它认为您已经在使用最新版本。等。
长话短说,vestal_versions不打算有这种行为,不应该期望这样做。我现在正在调查has_drafts gem,因为它似乎更接近我正在做的事情。