内容简介:翻译自:https://stackoverflow.com/questions/28122381/why-does-after-save-not-trigger-when-using-touch
最近几天,我试图使用 Redis 商店缓存rails app.
我有两个型号:
class Category < ActiveRecord::Base has_many :products after_save :clear_redis_cache private def clear_redis_cache puts "heelllooooo" $redis.del 'products' end end
和
class Product < ActiveRecord::Base belongs_to :category, touch: true end
在控制器中
def index @products = $redis.get('products') if @products.nil? @products = Product.joins(:category).pluck("products.id", "products.name", "categories.name") $redis.set('products', @products) $redis.expire('products', 3.hour.to_i) end @products = JSON.load(@products) if @products.is_a?(String) end
使用此代码,缓存工作正常.
但是当我更新或创建新产品(我在关系中使用了触摸方法)时,它不会触发Category模型中的after_save回调.
你能解释一下为什么吗?
touch
方法的文档?
Saves the record with the updated_at/on attributes set to the current
Please note that no validation is performed and only the
If an attribute name is passed, that attribute is updated along with
updated_at/on attributes.
翻译自:https://stackoverflow.com/questions/28122381/why-does-after-save-not-trigger-when-using-touch
以上所述就是小编给大家介绍的《ruby-on-rails – 为什么在使用触摸时不会触发after_save?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 通过解读 WPF 触摸源码,分析 WPF 插拔设备触摸失效的问题(问题篇)
- WPF 触摸到事件
- Android触摸事件传递机制
- 【透镜系列】看穿 > 触摸事件分发
- c# – Windows 8 – 如何关闭触摸键盘?
- iOS —— 触摸事件传递及响应与手势
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
我知道他想看什么
沙建军 / 中信出版社 / 2018-1 / 48.00
社交媒体迅速发展、信息快速迭代、时间碎片化;大数据、智能终端、物联网横空出世;移动支付、网红经济和传统营销失效,这些都让这个时代的媒体、内容、渠道、产品之间的边界越来越模糊,也从根本上改变了营销的逻辑,内容营销从热词变成趋势,变成营销的底层思维。未来一切都是媒体,形式也是内容。 本书作者通过对国内外36个内容营销的新近案例的故事化描述和透彻分析,提出“组织媒介化”“营销内容化”“内容情趣化”......一起来看看 《我知道他想看什么》 这本书的介绍吧!