我在想一个社交网站.我的用户模型应该有一个属性“eyecolor”,可以在具有选择框/下拉列表的视图页面上设置.
我的问题:
– >我应该做一个AR模型,还是应该使用一个全局的哈希/常数的数据?
“静态模型”有最佳实践吗?
并且如何在没有AR模型的情况下关联以下关系:
u = User.first u.eyecolor ==> 1 (not the eyecolor-string!)
我需要的是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 %>
原文地址:https://www.jb51.cc/ruby/272826.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。