rails 接触链与 has_many :through associations
rails touch chain with has_many :through 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
不能这样工作,因为链不是 "one way up",因为 arragement
指向 Photo
和 Collage
我怎样才能使照片更改(即触摸)也能触摸到它的拼贴画?
你可以手动触摸它们。
class Photo
has_many :arragements
has_many :collages, through: :arragements
after_save do
collages.update_all updated_at: Time.now
end
end
这是一个更短的版本:
class Photo
has_many :arragements
has_many :collages, through: :arragements
after_save { collages.find_each(&:touch) }
end
使用连接模型,在此示例设置中使用 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
不能这样工作,因为链不是 "one way up",因为 arragement
指向 Photo
和 Collage
我怎样才能使照片更改(即触摸)也能触摸到它的拼贴画?
你可以手动触摸它们。
class Photo
has_many :arragements
has_many :collages, through: :arragements
after_save do
collages.update_all updated_at: Time.now
end
end
这是一个更短的版本:
class Photo
has_many :arragements
has_many :collages, through: :arragements
after_save { collages.find_each(&:touch) }
end