2

如果可能,我想阻止访问数据库。这是一个很少更改的城市和州列表,将在项目开始时填充并由应用程序用于格式化和查找验证这些位置。

到目前为止,我的研究:

  • 配置/初始化程序

  • .yml 文件

  • 数据库但缓存它(我不想打数据库)

有点困惑,所以想要性能和约定的最佳方法。

4

1 回答 1

2

我建议采用以下两种方式之一:

  • 手动创建一个 ruby​​ 对象,其中包含数据并可以回答相关问题:

    class Cities
      def self.data
        {
          1: 'New York',
          2: 'Boston'
        }
      end
    
      def self.find_name_by_id(id)
        data[id]
      end
    end
    

    这意味着手工做更多的事情,而不是让 ActiveRecord 通常给你的所有东西都“免费”。或者...

  • 如果您确定需要 ActiveRecord 的所有花里胡哨,您也可以为此使用 gem:https ://github.com/zilkey/active_hash 。它可以执行您想要的操作,并且可以将数据存储到散列或 yaml 文件中的对象中。它将进行关联并提供人们习惯于 ActiveRecord 的对象方法。
于 2012-09-28T06:10:28.343 回答