我的站点包含具有头发和眼睛颜色等字段的用户配置文件。
我一直在我的用户模型中实现带有常量的查找表类型字段,即。
HAIR = %w[shaved black blond brown red grey white bald]
EYES = %w[black brown blue hazel green grey other]
在我的 View 中使用 collection_select 语句来填充下拉列表。我用常量这样做是为了避免每次查看用户配置文件时增加 ~10 个额外的连接。
<%= f.collection_select :eyes, Profile::EYES, :to_s, .....
值在模型中存储为整数,即。 profile.hair = Profile::HAIR.index("red")
如果我不将这些数据存储在模型中(例如眼睛模型、头发模型),我是否有任何明显的劣势 - 如果我希望根据眼睛 = 蓝色、头发 = 黑色执行搜索,这会对搜索速度产生很大的负面影响吗例如?
谢谢
最佳答案
这是可以使用 ActiveHash 的一个很好的例子:
http://github.com/zilkey/active_hash
让我们创建漂亮的内存中枚举模型来跟踪这些东西,这将让您在模型中创建有意义的关联。
关于ruby-on-rails - 用户配置文件查找表值作为常量(非规范化)或模型(规范化),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3202628/