回答
Rails遷移用於創建和更新數據庫。
我與偏好相當慵懶並存儲數據的序列化JSON或YAML哈希值。工作得很好,通常也保留數據類型。
我用單行表單,每列表示一個首選項。這使得可能有不同的數據類型。
爲了能夠獲取的偏愛,我推翻method_missing
能夠直接從類名檢索喜好值,而不需要一個實例,像這樣:
class Setting < ActiveRecord::Base
@@instance = self.first
def self.instance
@@instance
end
def self.method_missing(method, *args)
option = method.to_s
if option.include? '='
var_name = option.gsub('=', '')
value = args.first
@@instance[var_name] = value
else
@@instance[option]
end
end
end
因此,以檢索設置,你可以使用:
a_setting = Setting.column_name
這沒什麼,但是如果我想要設置具有名爲'data_type'的字段呢?所以設置可以是例如整數,浮點數,布爾值。 – 2010-01-29 08:02:07
@Igor:那沒用。通過使用基於列的存儲,您可以讓數據庫定義數據類型,並且不需要爲其分配單獨的列。您正在考慮每個設置有一行,並且數據類型只有一列。我的例子是單行,每列可以是任何你想要的數據類型。 – JRL 2010-01-29 08:19:51
是的,也許你是對的:) – 2010-01-29 09:45:26
我寫了的寶石,正是這一點,最近更新它爲Rails 3:
對於Rails 3的:
http://github.com/paulca/configurable_engine
對於Rails的2.3.x版本
http://github.com/paulca/behavior
享受!
- 1. 如何在數據庫中保存不同的方法參數?
- 2. Stateful Rails應用程序。不在數據庫中存儲數據
- 3. 如何使用不同數量的參數使用spring存儲庫從數據庫創建選擇?
- 4. 在數據庫中存儲秒 - Rails
- 5. Rails:在數據庫中存儲翻譯
- 6. 不在數據庫中存儲數據
- 7. 如何使用C#將數據存儲在數據庫中?
- 8. 如何使用Textarea將此數據存儲在數據庫中?
- 9. 如何使用asp.net將數據存儲在sql數據庫中#
- 10. 如何在關係數據庫中存儲不同版本的數據?
- 11. 如何使用數據存儲庫
- 12. 將數據存儲在沒有數據庫的Ruby on Rails中
- 13. 如何測試在數據庫中使用UDF的Django站點?
- 14. Rails數據庫 - 如何使用用戶密碼存儲加密數據?
- 15. 不能存儲在不同表的值在數據庫中
- 16. 如何使用javascript將數據存儲到mysql數據庫中?
- 17. 如何使用javascript將數據存儲到數據庫中
- 18. 如何在數據庫中存儲
- 19. 如何在數據庫中存儲「\」?
- 20. 如何在android數據庫中存儲
- 21. 如何在Java中以不同數量的行存儲數據?
- 22. 在不使用數據庫的情況下存儲數據android
- 23. 如何存儲在數據庫中的網絡推端點URL
- 24. 如何使圖片存儲在數據庫中,作爲不同的鏈接?
- 25. 使用Laravel4中的ANGULARJS將數據存儲在數據庫中
- 26. 如何使用通用的數據庫中獲取,使用企業庫中的存儲過程的參數
- 27. Rails - 帶屬性的模型,不存儲在數據庫中
- 28. C如何在內存中存儲不同的數據類型?
- 29. 數據庫設計:如何在數據庫中存儲XML/JSON?
- 30. 地址參數存儲在如何數據庫
如何使用無模式數據庫呢? 它會表現得更好,並且更容易用JSON哈希查詢。 – CodeJoust 2010-01-29 06:11:05
你可以,但是你需要爲所有的事情拋棄你的RDBMS,或者一起運行這兩者來增加你的成本。將數據庫中的字符串拉到反序列化的性能非常好,特別是在使用JSON和JSON gem時。使用像MongoDB這樣的數據庫,你仍然會有反序列化開銷。 – 2010-01-29 23:31:43