在rails中创建两个版本的记录

时间:2016-07-22 18:38:10

标签: ruby-on-rails

我有一个食谱数据库,当创建一个新食谱时,我想创建它的两个版本(一个不能编辑的原始版本)和另一个可编辑的版本。这样用户可以将当前版本与原始版本进行比较。

我有两个字段来关联它们并识别它们(is_original:boolean和original_id:integer)

我无法弄清楚将代码放在何处调整参数并创建配方两次。我想创建第一个is_original设置为true和original_id。然后我需要从刚刚创建的配方中获取id并将original_id设置为下一个匹配。

2 个答案:

答案 0 :(得分:1)

使用after_create回调。

当你为original_id提供null时,为什么还要使用is_original字段。只做一个is_original?查看original_id字段的方法,如果为null,则返回true。

答案 1 :(得分:0)

首先创建原始文件。创建后,如果已编辑,则创建可编辑版本。所有编辑都可以创建原始子项,并且将建立基本版本控制系统。

不要一次创建两个对象 - 第二个只是第一个的副本。这似乎没有必要,特别是如果它从未编辑过。

我同意布尔的@pixelearth。使用parent_id或original_id。