我正在尝试检测何时创建新记录,但我面临着两种不同的创建方法的问题。
第一种方法涉及直接使用模型创建记录,如下所示:
@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 机制似乎没有按预期运行。