内容简介:翻译自: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 —— 触摸事件传递及响应与手势
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Algorithms + Data Structures = Programs
Niklaus Wirth / Prentice Hall / 1975-11-11 / GBP 84.95
It might seem completely dated with all its examples written in the now outmoded Pascal programming language (well, unless you are one of those Delphi zealot trying to resist to the Java/.NET dominanc......一起来看看 《Algorithms + Data Structures = Programs》 这本书的介绍吧!