【发布时间】:2013-07-05 17:34:17
【问题描述】:
型号
class Line < ActiveRecord::Base
attr_accessible :num, :foreign_id
def self.cached_foreign(q)
Rails.cache.fetch([name,"foreign"+q.to_s]) { where(:foreign_id => q) }
end
end
对于上述模型,当Line.cached_foreign(1)重复运行时,它总是执行sql语句。
这里有什么问题?理想情况下,它应该从缓存中返回重复调用。
这在使用 find 时似乎可以正常工作,但在使用 where 时却不行。
【问题讨论】:
-
它是否也在使用
find_by_foreign_id检索新记录? -
@Vishal 使用 find 时效果很好。
标签: ruby-on-rails caching