我有一个表,其中包含一堆我需要更新的行(有时是一行,有时是多行)。但是,在更新之前,我想将值从2列复制到其他两列。
id, current_tag, current_serial, previous_tag, previous_serial
我需要复制current_tag -> previous_tag
和current_serial -> previous_serial
然后更新current_tag
和current_serial
。
这样做有优雅/快速的方法吗?
我也不同于拥有previous_tag
和previous_serial
列的想法,但我确实需要一种方法来保留以前的值,以防用户需要进行回滚?
答案 0 :(得分:1)
通过使用像paper_trail gem这样的东西,我会认为这是一个解决的问题。它将提供您所需的所有功能以及非常优雅的回滚功能(即使只是最后一次更改,您也可以拥有完整的历史记录)。
我发现很容易与现有应用集成。
这里有https://github.com/airblade/paper_trail
我注意到这不是唯一的解决方案,这里还有很多其他解决方案https://www.ruby-toolbox.com/categories/Active_Record_Versioning