ruby-on-rails - 用户配置文件查找表值作为常量(非规范化)或模型(规范化)

标签 ruby-on-rails ruby

我的站点包含具有头发和眼睛颜色等字段的用户配置文件。

我一直在我的用户模型中实现带有常量的查找表类型字段,即。

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/

相关文章:

ruby-on-rails - 为什么不同的 rake 命令会影响不同的数据库?

ruby-on-rails - :something and somethingelse: 中的冒号放置有什么区别

ruby-on-rails - 迭代 Rails 对象数组以创建键/值对

ruby-on-rails - 为什么我的 RMagick 渲染的 PDF 看起来这么糟糕?

ruby - 如何迭代文件?

ruby-on-rails - 无法打开库 'libcurl' : libcurl: cannot open shared object file: No such file or directory

ruby-on-rails - 使用设计范围重新定义默认路由

ruby - 未定义方法 `%' 对于 nil :NilClass

ruby-on-rails - rails 、Postgres、EC2/AWS : Database Config Does Not Specify Adapter Error

ruby-on-rails - 什么是与 Heroku 上的 Rails 一起使用的好 .gitignore?