像这样的东西:
类别
SOME_CATEGORY = find_by_name("some category")
Run Code Online (Sandbox Code Playgroud)
结束
分类:: SOME_CATEGORY
尝试没有问题,但想知道这是不是一个坏主意,以及原因,如果有的话..
谢谢
如果您不希望每次必须缓存模型时都访问数据库.有几种方法可以做到这一点,但一种快速方法是使用Memoization.这是在Rails 2.2中引入的.
class Category < ActiveRecord::Base
class << self
extend ActiveSupport::Memoizable
def named(name)
find_by_name(name)
end
memoize :named
end
end
Run Code Online (Sandbox Code Playgroud)
像这样使用它.
Category.named("some category") # hits the database
Category.named("some category") # doesn't hit the database
Run Code Online (Sandbox Code Playgroud)
缓存应该跨请求保持持久性.您可以通过传递true最后一个参数来重置缓存.
Category.named("some category", true) # force hitting the database
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1582 次 |
| 最近记录: |