gpt4 book ai didi

ruby-on-rails - rails : How can I cache system table data

转载 作者:行者123 更新时间:2023-12-04 06:45:57 24 4
gpt4 key购买 nike

假设我有一个带有 2 个固定记录的系统表“类别”。用户将不被允许删除这 2 个,但可能希望添加他们自己的以扩展他们的列表。我需要能够在某些时候拉出“花园”类别,例如在创建花园项目时。

返回花园实例的类属性读取器可以完成这项工作,但我想知道如何通过缓存来改进这一点?

我相信 memoization 只会在每个进程中起作用,这在这里几乎毫无意义。我希望它设置一次(可能是第一次访问它或在应用程序启动时),并保留在缓存中以备将来使用。

示例设置:

class Project < ActiveRecord::Base
belongs_to :category
end

class Category < SystemTable
cattr_reader :garden
def self.garden
@@garden ||= self.find_by_name('garden')
end
end

最佳答案

下面显示的方法如何,当 Category 时,它将检索花园实例一次。类已加载:

class Category < SystemTable 
GARDEN = self.find_by_name('garden')
end

现在,无论何时您需要花园类别,您都可以使用 Category::GARDEN .

关于ruby-on-rails - rails : How can I cache system table data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3768100/

24 4 0