Ruby on Rails中模型的版本控制
我正在寻找一个插件/动作来允许我的模型版本化。 找到可用解决方案的列表很困难。 到目前为止我收集了:
acts_as_versioned
-
simply_versioned
-
vestal_versions
最后两个解决方案只需要一个版本表 – 这听起来不错,但我对于如何通过这种方式处理迁移的简易性感到不好(因为它们将状态序列化为字符串)。
另一方面, acts_as_versioned
有点尘土飞扬(1月最后一次提交)。 这些是否有任何近期经验? 或者我可能忽略的其他解决方案(或叉子)?
上周我和vestal_versions
合作过,是的,它是最先进的选择,至少在空间方面:你只存储你真正需要的东西。 这是一个活跃的项目,版本1.0将是一个具有许多新function的巨大更新; 只看1.0分支就知道我的意思。
但是在玩了一下之后,我注意到了一个很大的缺陷:性能。 每次需要特定版本时,都必须经历所有中间版本,重建所需的版本。 这也意味着您无法直接编辑或删除版本,因为它可能会混乱修改,破坏链。 为此,您需要充分处理版本,即vestal_versions
当前不执行的操作。
这样,对于我遇到的问题,我最终得到了自己的版本控制解决方案。 我需要性能以及快速删除和编辑版本的能力,因此我牺牲了存储并开发了类似于act_as_versioned
东西。
但是,如果你不需要这个并且不必经常恢复,我强烈推荐vestal_versions
。 它是一个先进,可靠的解决方案和积极的解决方案,背后有一个充满激情的开发人员。
我一直在使用名为“paper_trail”的gem。 它似乎是目前在线的最佳解决方案。 它集审计和版本控制于一体。
http://github.com/airblade/paper_trail
希望这可以帮助!
我们在项目中使用了acts_as_audited,取得了相当不错的成功。
你可以在http://github.com/collectiveidea/acts_as_audited/找到它。
(最后一次提交于11月:-))
几个月前,我测试了几种解决方案,而vestal_versions
是最有效的。 Ryan Bates还有很棒的截屏video 。
如果您正在寻找其他替代方案,请查看The Ruby Toolbox列表 。
另一个插件是paper_trail。 这是今天发布的railscast的链接:
http://railscasts.com/episodes/255-undo-with-paper-trail
他还提到为什么他更喜欢paper_trail而不是vestal_versions
嘿,我想知道是否有人想过在数据库的后端INSTEAD上使用Perforce,GitHub等作为支持版本控制的方法? 所以它基本上是基于文件的数据检索,我猜……
- 从我的Ruby on Rails Gem渲染视图
- 无法使用JRuby安装SQLITE3
- 当两个路由指向同一模型时,使用Devise resource_name发出问题
- authlogic UserSession.create(@user)给予unauthorized_record
- Rails:生成唯一的随机数以填充CSS类String如何?
- 如何应用自定义的Bootstrap消息错误来设计?
- 脚本/控制台不起作用; 报告“缺少Railsgem。 请`gem install -v = rails` …“即使rails显示为已安装
- 推送到特定Git存储库时排除特定文件
- Twitter引导药丸与Rails 3.2.2