2012-09-28 42 views
2

我想阻止如果可能的話去數據庫。這是一個很少變化的城市和州的列表,這些列表將在項目開始時填充,並由應用程序用於格式化和查找驗證這些位置。我應該在Ruby on Rails中存儲一個類似州或城市的靜態列表?

所以從我的研究遠:

  • 配置/初始化

  • YML文件

  • 數據庫,但高速緩存(我不想 訪問數據庫)

有點困惑所以想要bes t性能和慣例的方法。

回答

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中使用的對象方法。
+0

我會在哪裏放這個物體?它會在應用/模型下嗎?作爲lib文件夾中的模塊會更好嗎? – perseverance

+0

這是一個品味問題。我一般不喜歡把東西放在lib中,並將它放在應用程序/模型中。 – Stephan

相關問題