使用has_many轨道触摸链:通过关联

时间:2015-03-23 16:14:24

标签: ruby-on-rails-4 associations

使用连接模型,在此示例设置中使用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

我如何处理这样的照片更改(即触摸)也会触及其拼贴?

2 个答案:

答案 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