Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails ROR维护对象更新的历史记录_Ruby On Rails_Sqlite - Fatal编程技术网

Ruby on rails ROR维护对象更新的历史记录

Ruby on rails ROR维护对象更新的历史记录,ruby-on-rails,sqlite,Ruby On Rails,Sqlite,我有一个模型,我想存储更改的历史记录,我的计划是不更新一个对象,而是创建一个新的对象,并在一场演出中只获取最新版本 这个计划带来了许多困难。首先,更新后的id会有所不同。为了解决这个问题,我保留了第二个id列,该列对于该实例的所有更新都是相同的 为此,我为第二个column创建了一个SQLite序列 我的问题是如何从模型/控制器中的这个序列中获取值,因为我只想在第一次创建对象时从中获取值,其次,我如何使用第二个ID列作为对象的URL,以便在整个更新过程中固定它 非常感谢,查看PaperTrail

我有一个模型,我想存储更改的历史记录,我的计划是不更新一个对象,而是创建一个新的对象,并在一场演出中只获取最新版本

这个计划带来了许多困难。首先,更新后的id会有所不同。为了解决这个问题,我保留了第二个id列,该列对于该实例的所有更新都是相同的

为此,我为第二个column创建了一个SQLite序列

我的问题是如何从模型/控制器中的这个序列中获取值,因为我只想在第一次创建对象时从中获取值,其次,我如何使用第二个ID列作为对象的URL,以便在整个更新过程中固定它


非常感谢,

查看PaperTrail gem。它可能会做你想做的事情,完全回避这些问题


acts\u\u版本化的
gem可能是您想要的。我认为您的设计有点复杂。根据您的要求,您可以选择两张桌子。一个用于实时数据,一个用于存储历史(我们称之为数据历史)。在它们之间创建关联。实时数据有很多数据历史记录。这里的data_histories将有一个名为live_data_id的列,该列对所有历史记录保持不变。每次更改live_数据表时,将副本推送到历史记录并进行更改。干净多了。