首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails中跳过回调的方法说明

问Rails中跳过回调的方法说明
EN

Stack Overflow用户
提问于 2018-03-09 18:17:11
回答 2查看 41关注 0票数 2

我有视频和播放列表模型。为了加快播放列表缩略图的显示过程,我做了一个名为“缩略图”的栏目。我希望它在播放列表更新时随时更新(因为在我的应用程序的不同部分中有很多这样的情况),所以我尝试使用回调after_update

代码语言:javascript
复制
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等),所以我不知道如何使用它们。

EN

回答 2

Stack Overflow用户

发布于 2018-03-09 18:25:27

after_commit callback更适合这里。这将在将更改保存到数据库之后运行,这与after_update不同,后者在实际提交到数据库之前执行回调。

代码语言:javascript
复制
after_commit :set_thumbnail, on: [:update]
票数 0
EN

Stack Overflow用户

发布于 2018-03-09 18:43:22

也许在这里使用before_save更好?

代码语言:javascript
复制
Class Playlist < ApplicationRecord

  before_save :set_thumbnail, on: :update


  def set_thumbnail
    video_thumbnail = Video.find(self.content[0]).thumbnail
  end
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49191453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档