所以我想在同一模型的特定其他属性发生变化时自动删除模型属性。
我有一个名为profile
的rails模型,它有一个picture
属性,其中包含图像存储中图像的URL。此外,该模型还有一个crop_data
属性,其中包含要呈现给用户的部分图像信息,该信息可由用户设置,默认为profile.crop_data? # => false
如果profile.picture
属性已更改或已删除/重置
profile.crop_data? # should return false
并在数据库中重置为默认值。
实现这一目标的最简洁方法是什么?很抱歉,我们仍在运行Rails 3.2.21
。
答案 0 :(得分:1)
您可以使用之前的保存回调:
class Profile
before_save :check_crop_data
def check_crop_data
if self.changed_attributes.has_key?(:profile_picture)
self.crop_data = true
elsif picture.nil?
self.crop_data = false
end
end
end