问题标签 [vestal-versions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
217 浏览

activerecord - 属于特定版本

我需要将模型的特定版本与订单一起存储。我打算使用像paper_trailvestal_versions这样的版本控制 gem 。我想要订单自动加载的正确版本。

理想情况下,我只是简单地存储对象,order.update_attributes(:stuff => bought_stuff)订单会记住东西的版本,以便后续加载order.reload.stuff仍然是保存订单时的对象。

有没有可以提供这种功能的宝石?我找不到一个。

否则,如何使用 ActiveRecord 和版本控制 gem 来实现?

0 投票
1 回答
155 浏览

ruby-on-rails-3.2 - 如何使用 Rails 3.2 和 Ruby 1.9.3 上的 Vestal 版本绕过 NoMethodError?

好的 - 我想我已经到处搜索了,我认为这应该是一个重复的问题,但是在查看并尝试了多种事情之后仍然没有基本的 vestal_versions (1.2.2)工作。我处于开发的早期阶段,因此我对其他在 Rails 3.2 和 Ruby 1.9.3 上实际工作的版本控制解决方案持开放态度。

回购所有者正在寻找另一个冠军(也许这应该告诉我一些事情,呵呵),所以如果没有一些 TLC,也许这是不可能的,但如果有人弄清楚了,我会很感激。

谢谢你的时间!

这是我的情况:

  • 最大操作系统 X 10.8.2
  • mac 端口:ruby 1.9.3p194(2012-04-20 修订版 35410)[x86_64-darwin11]
  • 导轨 3.2.8

在我的 Gemfile

bundle 告诉我我有: - 使用来自 git://github.com/laserlemon/vestal_versions.git 的vestal_versions (1.2.2) (在master)

我的模型:

从我的控制器:

定义创建

错误输出包含:

0 投票
2 回答
2874 浏览

ruby-on-rails-3.2 - Rails 3.2 应用程序 - 我应该使用版本控制 gem(paper_trail 或 vestal_versions)还是手动处理?

我的问题:我应该推出自己的模型版本控制还是使用已经存在的版本控制 gem 之一?如果我应该使用 gem,哪个看起来最适合这个应用程序?

关于我的应用程序的信息

我的应用程序是一个简单的清单应用程序。有清单和工作,我使用响应和提交来跟踪用户响应。响应告诉我使用说什么(“完成”,附注“我们需要更多拖把。”),提交告诉我该特定清单何时填写(因为可能有许多提交和给定的响应集清单)。如果有帮助,我将在下面显示我的关联。

我想用版本控制做什么

我想做的是记录用户对清单上的工作的反应。但我想确保如果清单发生更改,我可以重现原始清单(带有响应信息)。例如,我想确保我可以为所有以前版本的清单回答这个问题:

“清单是什么样的,三个星期二前的反应是什么?”

如果我更改清单或其任何工作,我不想失去该问题的答案。

我认为最好的方法是使用版本控制(用于作业和清单)。例如,如果管理员更改了作业(名称或描述),那么我不会更新现有作业,而是创建一个新版本并保持旧版本不变。然后我把旧的东西留在原地,把清单指向工作的新版本。

我应该使用宝石还是自己滚动?

我试图决定是我应该自己推出(编写代码以增加版本,将所有内容指向版本,并保留以前的版本)还是使用现有的解决方案。两个最好的解决方案似乎是paper_trail 和vestal_versions。我没有足够的声望点来发布两个以上的链接,所以我将链接到 gem 的每个 Railscast(如果你愿意,它会让你到 gem 本身)。Railscast 255 Undo with paper_trailRailscast 177 Model Versioning - 177 使用vestal_versions。

自己滚动的优点:

  • 我需要通过重建清单及其响应来报告所有历史数据。这是该应用程序的主要功能。看起来这对于我提到的宝石来说会很棘手。
  • 我将能够报告版本组(“我想查看此作业的任何版本的所有回复”)。这样看起来很容易。

滚动我自己的缺点:

  • 这会很棘手,因为我有几个 has_many :through 关联。我必须非常小心地更新所有表并正确连接表。(这也可能是其中一颗宝石的问题)。
  • 由于我使用此版本数据进行报告,因此我担心性能问题。解析散列的计算成本似乎很高,而依赖带有索引的平面表似乎非常有效。
  • 这两个 gem 似乎更倾向于保留版本历史以进行跟踪,而不是真正用于维护历史信息以用于报告目的。

这似乎很重要,因为无论我决定什么,我基本上都会坚持下去。我认为以后从一种方法切换到另一种方法并不容易。

0 投票
1 回答
103 浏览

ruby-on-rails - Rails vestal_versions gem 创建版本而不保存父版本

我有兴趣在我的 rails 应用程序中使用 vestal_versions gem,但我想知道是否有人知道是否有任何方法可以创建新版本,但实际上并没有更新关联的 ActiveRecord。

例如,如果我有一个名字为“jim”的用户,并且我创建了一个名字为“steve”的新版本,我希望能够在不更改父记录的情况下保留该版本,直到我以后想要时间(使用 revert_to!(newer_version) 或类似的)。

如果这没有内置到 gem 中,关于我应该从哪里开始修补的任何线索?

0 投票
1 回答
162 浏览

ruby-on-rails - Rails 3 vestal_versions:在子模型更改时在父模型创建新版本

使用带有 vestal_versions gem 的 Rails 3 并有这种情况:

Post 模型的版本控制完美无缺。我想要的是,一旦相关的 Comment 模型被创建/更新,相关的 Post 模型应该得到一个新版本。(我不需要vestal_versions的恢复功能。)

实现这一目标的正确策略是什么?

0 投票
1 回答
60 浏览

ruby-on-rails - 使用 Vestal 版本访问具有版本号的对象

我正在使用 Vestal 版本来尝试比较同一模型的两个版本。为此。我需要访问我要比较的模型的两个实例。我尝试了以下代码:

我知道这是错误的。@latest_version_model 返回数字版本,而不是实际对象。@ 2nd_to_latest_version_of_model 返回错误。如何访问模型实例的最新版本和模型实例的第二个最新版本?

0 投票
1 回答
22 浏览

ruby-on-rails - vestal_versions 在 Rails 控制台中增加版本,但不通过 UI

我已添加versioned到我的 Post 模型中。如果我这样做,例如:

然后我通过我们网站的用户界面更新帖子。我查看服务器日志,更改已保存。

回到控制台:

没变。但是,我这样做:

为什么在命令行更新版本,但通过 UI 更新记录时没有?