我正在考虑建立一个社交网站。我的用户模型应该有一个属性“eyecolor”,可以使用选择框/下拉列表在视图页面上设置该属性。
我的问题:
-> 我应该制作 AR 模型还是应该对数据使用全局哈希/常量?
“静态模型”有最佳实践吗?
以及如何在没有 AR 模型的情况下将以下内容与关系关联起来:
u = User.first
u.eyecolor
==> 1 (not the eyecolor-string!)
我需要的是眼睛颜色字符串:
u = User.first
u.eyecolor
==> "brown"
谢谢,
对不起,我的英语不好!
您可以创建一个模型来处理您的眼睛颜色逻辑:
class EyeColor
COLORS = ['blue','brown','hazel']
attr_accessor :color
# Some logic methods...
def is_brown?
self.color == 'brown'
end
end
注意:此模型不是 Active Record 模型,但它确实为您尝试建模的现实世界对象创建了一个抽象。
编辑:我也喜欢这种方法,而不是全局散列,因为它可以在 EyeColor 中组织静态定义,而不是在程序中浮动,这使得该定义的位置很清楚。
<%= select :user, :eye_color, EyeColor::COLORS %>
编辑:向谓词方法添加问号。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)