重复记录以保留原始

时间:2016-07-27 03:54:18

标签: ruby-on-rails

我正致力于一个允许用户提交和投票变更的项目。但是我希望保留原版的版本,以便用户可以查看它并查看原始版本和已投票的内容之间的差异。我想知道什么是最好的方法呢?

我最初想的是创建配方两次,并将另一个中的一个ID引用为原始配方,但想知道是否有更有效的方法来执行此操作。

1 个答案:

答案 0 :(得分:1)

我认为有很多方法可以做到: -

  1. 使用单个表,对于每个新的配方记录,您可以添加一个版本列,并在创建时,每次更新它。因此您只需要比较当前配方和当前配方-1记录。
  2. 使用两个表,第一个表将存储创建的每个配方,其他表将在使用has many through模型创建每个新配方后存储该用户的最后一个配方ID(user.recipes.last)。例如: -

    用户has_many:recipe_copies,:dependent => :破坏 user has_many:recipe through :: recipe_copies

  3. 因此,对于recipes表格中的每条新记录,您可以使用recipes_copy和{user.recipes.last.id表格中的添加 新行 {1}} id并将其存储在副本表中。

    ,例如

    New recipe

    希望有所帮助