我有视频和播放列表模型。为了加快播放列表缩略图的显示过程,我做了一个名为“缩略图”的栏目。我希望它在播放列表更新时随时更新(因为在我的应用程序的不同部分中有很多这样的情况),所以我尝试使用回调after_update
Class Playlist < ApplicationRecord
after_update :set_thumbnail
def set_thumbnail
video_thumbnail = Video.find(self.content[0]).thumbnail
self.update(thumbnail: video_thumbnail)
end
end当然,我有无穷无尽的循环。
Rails文档只列出了跳过回调的方法(例如decrement、decrement_counter等),所以我不知道如何使用它们。
发布于 2018-03-09 18:25:27
after_commit callback更适合这里。这将在将更改保存到数据库之后运行,这与after_update不同,后者在实际提交到数据库之前执行回调。
after_commit :set_thumbnail, on: [:update]发布于 2018-03-09 18:43:22
也许在这里使用before_save更好?
Class Playlist < ApplicationRecord
before_save :set_thumbnail, on: :update
def set_thumbnail
video_thumbnail = Video.find(self.content[0]).thumbnail
end
endhttps://stackoverflow.com/questions/49191453
复制相似问题