使用连接模型,在此示例设置中使用has_many :through
class Collage
has_many :arrangements
has_many :photos, through: :arrangements
class Photo
has_many :arragements
has_many :collages, through: :arragements
end
class Arragement
belongs_to :photo
belongs_to _collage
end
照片可能会改变尺寸,这会导致拼贴更改
使用touch: true
,不会以这种方式工作,因为链条不是一个向上",因为arragement
指向{{1 }和Photo
我如何处理这样的照片更改(即触摸)也会触及其拼贴?
答案 0 :(得分:4)
这是一个更短的版本:
class Photo
has_many :arragements
has_many :collages, through: :arragements
after_save { collages.find_each(&:touch) }
end
答案 1 :(得分:1)
你可以手动触摸它们。
class Photo
has_many :arragements
has_many :collages, through: :arragements
after_save do
collages.update_all updated_at: Time.now
end
end