在resource.save之后检测新的嵌套字段

时间:2016-03-16 15:43:45

标签: ruby-on-rails

我有一个嵌套关联[ {"id":1,"text":"some text","user_id":1}, {"id":1,"text":"some text","user_id":2}, ... ]

我有一个带有茧的表单,我可以添加新的nested_fields。

在我的控制器中,我首先尝试保存资源和嵌套字段(最终触发验证错误),但如果验证通过并保存资源以及嵌套字段,我需要执行自定义操作仅限于新的嵌套字段(之前不存在的新记录)。

如何只选择新字段? (请注意,这发生在company has_many :employees

之后
@resource.save

我不认为这是相关的,但我使用的是Mongoid。

2 个答案:

答案 0 :(得分:1)

如何将这些新创建的员工放在数组之前保存,如下所示:

bufname('%')

然后你可以在 @ company.save

之后做任何你想做的事情

答案 1 :(得分:-1)

假设您正在使用rails使用的默认的updated_at和created_at标记(或任何类似的标记),您可以在调用批量保存之前立即获取时间,然后获取属于父级的所有元素。在那之后创建。例如:

# Gets the current time
time = Time.now

if @company.save
    custom_action(@company.nested_items.where("created_at >= ?", time) do
        # Processing only newly created employees
    end)
end