内容简介:翻译自: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?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
利用Python进行数据分析
Wes McKinney / 唐学韬 / 机械工业出版社 / 2013-11-18 / 89.00
【名人推荐】 “科学计算和数据分析社区已经等待这本书很多年了:大量具体的实践建议,以及大量综合应用方法。本书在未来几年里肯定会成为Python领域中技术计算的权威指南。” ——Fernando Pérez 加州大学伯克利分校 研究科学家, IPython的创始人之一 【内容简介】 还在苦苦寻觅用Python控制、处理、整理、分析结构化数据的完整课程?本书含有大量的实践案例,......一起来看看 《利用Python进行数据分析》 这本书的介绍吧!