我正在使用Rails版本3. 我想創建一個模型,其中我有一個名爲「Page-visits」的字段,我希望它將範圍保存爲值,例如:(50 .. 100),(1000 .. 5000)等。如何做到這一點? 即使在rails中沒有這樣的數據類型,我想知道如何實現它的其他方法?如何在Rails模型創建中使用Range數據類型?
3
A
回答
1
我建議建立與屬性page_visits模型持有的訪問確切金額,然後在行動中定義的方法,像水木清華
def page_visit_range
#case when statement for self.page_visits or some smarter maths to return range
end
7
我假設你真的想存儲範圍在模型,而不是一個範圍內的值。 (如果你想要做後者,驗證就是你的答案)。
所以,範圍。在模型中。你有兩個選擇,每個都相當不錯。
選項1:創建一個類型爲「text」的列(range_column
)。將Ruby範圍對象傳遞到列,如@my_model_object.range_column = (50..100)
。告訴Rails系列化你的範圍是這樣的:
class MyModel < ActiveRecord::Base
serialize :range_column
end
現在,Rails會自動轉換至YAML數據庫存儲,並將其轉換回範圍對象時,它再次檢索記錄。沒有比這更容易!
選項2:創建兩個類型爲'integer'的列(range_start
和range_end
)。建立東西在你的模型是這樣的:
class MyModel < ActiveRecord::Base
def range=(rstart, rend)
self.range_start = rstart
self.range_end = rend
end
def range
(range_start..range_end) # or as an array, or however you want to return it
end
end
第一個選項是容易(在我看來,更好),而第二個給你更多的一個稍微有點彈性的開箱你不要案」不想使用Ruby範圍對象(儘管如此,爲什麼不呢?)。
相關問題
- 1. 使用導入模塊中的類型創建數據類型
- 2. 如何在django 1.7模型中創建鍵值數據類型
- 3. Rails模型與類型如何建模?
- 4. 在Rails模型中創建模型
- 5. 如何在Rails中創建模型?
- 6. 如何在Rails中查詢數據而無需創建模型?
- 7. 如何在Django模型中創建類
- 8. 如何使用模型在鈦中創建數據庫表?
- 9. 如何使用數據模型在sqlite.swift中創建外鍵
- 10. NoMethodError Rails中創建模型
- 11. ASP.NET MVC 5.0模型類 - 如何在模型類中創建屬性但不創建數據庫字段
- 12. rails - 如何顯示在ui中使用多對多關聯模型創建的多對多數據模型?
- 13. 如何從Rails模型中獲取屬性的數據類型?
- 14. 使用malloc創建數據類型()
- 15. 超類型/子類型:數據建模
- 16. 如何創建數據模型動態
- 17. 如何爲船創建數據模型?
- 18. AngularJS - 如何使用模型中的數據創建圖形
- 19. 如何在覈心數據中創建數據模型?
- 20. 如何創建數據子類型
- 21. Ruby on Rails:使用多個數據源創建模型
- 22. 創建多個模型 - 一類的Rails
- 23. 如何在mysql數據庫中創建TINYINT(1)數據類型?
- 24. 如何創建gettable模板類型數據sa類字段?
- 25. 如何創建的模型ID和模型類型
- 26. 在rails中重新創建模型
- 27. 在Rails中創建相關模型?
- 28. Rails:在模型中創建HTML
- 29. 如何在大型數據倉庫中爲發票創建數據模型?
- 30. 使用UML約定創建元模型並創建數據模型
在序列化的情況下,應該/我們可以使用'serialize:range_column,Range'還是我誤解了該參數的使用目的? – Ziggy 2013-03-28 20:50:39