我正在使用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