Ruby on rails 属性,指示activerecord模型是否处于保存状态?
我需要知道模型是否处于保存状态(在验证之前和保存之后)Ruby on rails 属性,指示activerecord模型是否处于保存状态?,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我需要知道模型是否处于保存状态(在验证之前和保存之后) classmodela123,:ref=>self) 结束 结束 类ModelB
classmodela123,:ref=>self)
结束
结束
类ModelB
我的项目中的每个模型实例都需要“is_saving?”属性。实现这一点的最佳方法是什么?您是否可以使用ActiveRecord的
:around\u save
回调在:prefore\u save
和:after\u save
之间设置一个实例变量,然后生成您的save?无论如何,这个问题对我来说并不太清楚。保存的目的是什么?
方法 很可能,在继承ActiveRecord::base并声明的系统中,创建要由所有模型继承的基本模型类是\u保存属性。这就是我尝试做的:在保存之前在modelb中创建记录。在modelb中,在创建回调之前更改modela的属性,以及modela是否正在保存?它不应该做modela.save!(在另一种情况下,应该执行modela.save!)我编辑了相关的ruby代码,以便更好地说明我的上一条评论。
class ModelA < ActiveRecord::Base
before_save: do_before
def do_before
modelb.create(:attr => 123, :ref => self)
end
end
class ModelB < ActiveRecord::Base
before_create: do_before
def do_before
self.ref.my_attr = 321
self.ref.save! unless self.ref.is_saving?
end
end