模型
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
.