我试图将avatar_id设置为nil,在记录中它与我当前的记录self.avatar_id相同,并且它的类型相同。
class AvatarPart < ActiveRecord::Base
before_save :clear_avatar_body
def clear_avatar_body
used = AvatarPart.where(ap_type: self.ap_type, avatar_id: self.avatar_id).first
if used
used.avatar_id = nil
used.save
end
end
end
rails console中的类似解决方案工作正常。但是在模型中它没有做任何事情,或者我的类似之一。每个解决方案都以无限循环结束。 我应该把它移到控制器吗?
答案 0 :(得分:3)
您是否尝试过使用update_all
。像这样的东西
AvatarPart.where(ap_type: self.ap_type, avatar_id: self.avatar_id).update_all(avatar_id: nil)