如何创建一个表示数据库中的内容的静态类?

时间:2012-02-25 17:07:55

标签: ruby-on-rails ruby

我有一张表格如下:

AccountType

ID  Name  Property1 Property2 Property3

在启动时,我想创建一个表示数据库行的类,我可以通过ID和名称来引用它。

我希望这是一个静态表示(它永远不会改变,如果它在极少数情况下,我可以重新启动应用程序)因为我将在我的代码中引用并且不想命中数据库所有时间。

我在数据库中需要它,因为我还需要将它与其他表连接起来。

可以这样做吗?

用法:

AccountType[1]
AccountType["PRO_PLAN"]

1 个答案:

答案 0 :(得分:3)

当然。试试这个:

#config/initializers/constants_from_account.rb

ACCOUNT_TYPE = {}

AccountType.all.each do |account_type|
  ACCOUNT_TYPE[account_type.name] = account_type
  ACCOUNT_TYPE[account_type.id] = account_type
end

然后,您可以使用ACCOUNT_TYPE [1]或ACCOUNT_TYPE [“PRO_PLAN”] - ID或名称 - 来访问新的帐户类型哈希值。