活动记录:更新前复制字段的优雅方式?

时间:2013-11-18 02:02:35

标签: ruby-on-rails ruby activerecord ruby-on-rails-4 rails-activerecord

我有一个表,其中包含一堆我需要更新的行(有时是一行,有时是多行)。但是,在更新之前,我想将值从2列复制到其他两列。

id, current_tag, current_serial, previous_tag, previous_serial

我需要复制current_tag -> previous_tagcurrent_serial -> previous_serial 然后更新current_tagcurrent_serial

这样做有优雅/快速的方法吗?

我也不同于拥有previous_tagprevious_serial列的想法,但我确实需要一种方法来保留以前的值,以防用户需要进行回滚?

1 个答案:

答案 0 :(得分:1)

通过使用像paper_trail gem这样的东西,我会认为这是一个解决的问题。它将提供您所需的所有功能以及非常优雅的回滚功能(即使只是最后一次更改,您也可以拥有完整的历史记录)。

我发现很容易与现有应用集成。

这里有https://github.com/airblade/paper_trail

我注意到这不是唯一的解决方案,这里还有很多其他解决方案https://www.ruby-toolbox.com/categories/Active_Record_Versioning