ruby如何正确更新父对象和子对象



我有三个相关的模型:

class Parent < ApplicationRecord
has_many :pets
has_one :kid
attr_accessor :notify_kid
after_save :let_the_kid_know
def let_the_kid_know
if notify_kid == '1'
self.kid.does_the_kid_know = true
self.kid.save
end
end
end
class Pet < ApplicationRecord
belongs_to :parent
end
class Kid < ApplicationRecord
belongs_to :parent
end

在我的测试中,我尝试这样做:

parent.notify_kid = '1'
parent.pets.first.name = 'Lollipop'
parent.save!
assert_equal true, parent.kid.does_the_kid_know

测试失败。此外,宠物道具也不会更新。在测试中,我对数据库中已经创建的对象进行操作。

这里有一个语法错误:def let_the_kid_know:,它应该是def let_the_kid_know和另一个parent.notife_kid我猜是parent.notify_kid

如果这还不足以解决你的问题,请张贴你在终端看到的错误。

最新更新