我的应用程序有一个 Image 类,多态关联到不同的类。所以这些对象中的每一个都有一组图像,我希望能够将其中一个设置为特色图像。
因此,我is_featured
在 Image 类中添加了一个字段,并且我想确保每个关联对象只有一个图像,并将该字段设置为 true。
所以我试图覆盖这个字段的setter方法。这是我到目前为止得到的,但它不起作用(它没有将其余is_featured
字段设置为false
):
def is_featured=(is_featured_value)
if is_featured_value == true
current_featured = self.imageable.featured_image
if current_featured and current_featured != self
current_featured.write_attribute(:is_featured, false)
end
end
super(is_featured_value)
end
有谁知道什么不起作用?
顺便说一句,我知道可能有更好的方法来做到这一点,比如featured_image_id
在关联对象中使用一个字段,但在这一点上,我想知道如何使它工作。