最佳实践:我应该对静态数据使用 AR 模型还是全局哈希?

2024-02-12

我正在考虑建立一个社交网站。我的用户模型应该有一个属性“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(使用前将#替换为@)

最佳实践:我应该对静态数据使用 AR 模型还是全局哈希? 的相关文章

随机推荐

  • Odoo15 - ModuleNotFoundError:没有名为“PyPDF2”的模块

    我是 Odoo 的新手 我使用 pyenv 来托管 odoo 和所有依赖项 全部在 odoo 系统用户下 我能够启动 odoo 服务 systemctl status odoo 15 odoo 15 service Odoo15 Loade
  • 使用 PDO 的 mysql_num_rows 替代方案

    现在我有一个 PHP 文件 它执行 MYSQL 查询 然后计算行数 如下所示 count mysql num rows result if count 1 message array status gt ok else message ar
  • 列表理解:为每个项目返回两个(或更多)项目[重复]

    这个问题在这里已经有答案了 是否可以为列表理解中的每个项目返回 2 个 或更多 项目 我想要什么 示例 f x g x for x in range n 应该返回 f 0 g 0 f 1 g 1 f n 1 g n 1 因此 可以用一些东西
  • C++中的私有拷贝构造函数有什么用

    人们为什么要定义私有复制构造函数 什么时候将复制构造函数和赋值运算符设为私有是一个好的设计 如果类中没有作为唯一对象 如文件名 的指针或句柄的成员 那么在其他情况下 私有复制构造函数是个好主意吗 同样的问题也适用于赋值运算符 鉴于大多数 C
  • 按 Enter 键时 AngularJS 表单未提交

    我试图在用户按 Enter 键时提交登录表单 单击 登录 按钮时 该表单工作得很好 但按 Enter 不起作用 而且会导致奇怪的行为 关联的函数ng submit没有被执行 按 Enter 后不再显示错误消息 登录失败 这是我的标记
  • Bluecloth v2.0.10 在 Windows 7 中无法正常工作

    对于 Ruby 187 我从以下位置下载了 devkit http rubyinstaller org downloads http rubyinstaller org downloads并按照说明进行操作https github com
  • 如何更改 FireMonkey 中的编辑控件背景颜色?

    我只是找不到更改移动 FireMonkey 应用程序中编辑控件背景颜色的方法 我不知道移动版 FMX 但在 Mac Win 版 FMX 中 您应该执行以下步骤 右键单击 TEdit 并选择编辑自定义样式 在 结构 窗口中 展开编辑样式 T布
  • 如何使用函数初始化数组? [复制]

    这个问题在这里已经有答案了 我想在 Rust 中创建一个包含 10 个空向量的数组 但是 Vec new 10 不起作用Vec不执行Copy 我该如何做到这一点 更一般地说 如何通过重复调用函数来初始化数组 从 Rust 1 63 开始 U
  • 使用反射复制构造函数[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一个包含 100 个字段的基类和一个包含 2 个字段的派生类 我希望通过调用基类中的 getter
  • 从商店下载全新版本后,Expo 中的 OTA 更新是否会在首次打开时启动?

    我使用 React Native 开发了一个应用程序 并通过 Expo 分发了它 我将最终版本发布到 Google Play 和 Apple Store 一段时间后我发现世博会的出版文档 https docs expo io version
  • 将cypress测试框架添加到Maven pom.xml

    尝试在 Maven 项目中使用新的 cypress 框架 文档只有一个 npm 模块设置示例 npm install cypress 和一个 package json 使用示例 如何将其转换为 Maven 依赖项中的用法 您也可以直接下载C
  • Xcode“来自调试器的消息:对 k 数据包收到意外响应:正常”

    在模拟器上测试我的应用程序时收到此消息 来自调试器的消息 对 k 数据包收到意外响应 正常 这是什么意思 我的应用程序是否存在任何危险 使用 Xcode 6 4 和 7 2 如果你看一下文件进程GDBRemote cpp http llvm
  • 使用 BitmapSource 的 WPF 渲染性能

    我创建了一个 WPF 控件 继承自 FrameworkElement 它显示可以平移的平铺图形 每个图块为 256x256 像素 24bpp 我已经重写了 OnRender 在那里 我加载所有新图块 如 BitmapFrame 然后使用 D
  • 异步函数执行?

    在我的 iOS 应用程序中 我执行以下操作 viewDidAppear Load a spinner in a view on the top DSBezelActivityView newActivityViewForView self
  • ASP.NET 和 C# 重定向

    我正在为学校做一个项目 这是一个额外的学分部分 我有一个使用母版页在 VS 2010 中启动的项目 我想做的是获得一个 提交 按钮 将人们重定向到 MyAccounts aspx 页面 我当前的按钮 ASP 部分代码如下所示
  • 将 jsPDF 生成的两个 PDF 合并为一个文档

    我正在使用 jsPDF 从 HTML 生成文档 使用 html 方法 并且效果很好 但现在我需要做下一步 创建 jsPDF 对象 使用以下内容添加内容 html method 将新页面添加到创建的文档中 使用相同的内容将内容添加到第二页 h
  • 在春季测试@Scheduled

    Spring 提供了使用注释按特定时间间隔安排和执行任务的可能性 例如 Scheduled http static springsource org spring docs 3 0 x reference scheduling html 有
  • 如何在 ms access 2007 查询中声明和设置变量

    我想在 ms access 2007 数据库查询中声明和设置变量 我想将2个数据库查询结果存储在2个变量中 因为执行后它们是整数或字符串类型 我想知道如何声明和设置变量 SQL Server 等效项是这样的 declare var1 var
  • 如何让断言等待 IdlingResource 断言

    我想使用空闲资源 因为我在应用程序中使用 RxJava 和 EventBus 有时我的测试失败 我认为这是因为同步 依赖项 androidTestCompile com android support test runner 0 4 and
  • 最佳实践:我应该对静态数据使用 AR 模型还是全局哈希?

    我正在考虑建立一个社交网站 我的用户模型应该有一个属性 eyecolor 可以使用选择框 下拉列表在视图页面上设置该属性 我的问题 gt 我应该制作 AR 模型还是应该对数据使用全局哈希 常量 静态模型 有最佳实践吗 以及如何在没有 AR