saved_change_to_attribute 和 previously_new_record 不能与 ActiveRecord_Associations_CollectionProxy 一起使用?

问题描述 投票:0回答:0

我正在尝试检测何时创建新记录,但我面临着两种不同的创建方法的问题。

第一种方法涉及直接使用模型创建记录,如下所示:

@member = member.new(...)
@member.save
@member.previously_new_record ---> true

当我使用这种方法保存记录时,previously_new_record机制工作得很好,@member.previously_new_record返回true,说明记录确实是新的。

但是,第二种方法涉及通过 ActiveRecord_Associations_CollectionProxy 创建记录,如下所示:

@member = user.membership.build(...)
@member.save
@member.previously_new_record ---> always return false

在这种情况下,无论记录是否真的是新的,

@member.previously_new_record
总是在保存记录后返回
false

非常感谢您协助解决此问题。非常感谢!

我已经使用调试技术和 Rails 控制台进行了测试,使用第二种方法时,previously_new_record 机制似乎没有按预期运行。

ruby-on-rails ruby activerecord
© www.soinside.com 2019 - 2024. All rights reserved.