如何将模型的整数属性映射到字符串?

2024-04-05

我的数据库中有一个 Hotels 表,其中一列是:status (integer)。我正在寻找将这些整数转换为字符串,所以1 = "Awaiting Contract", 2 = "Designing"等等...

我在 Stack 中搜索了一些答案,但缺乏答案让我觉得我是从错误的角度来看待这个问题的?我曾经在 PHP 中执行此操作,同时提取数据。对 Rails 来说还是个新手,所以任何帮助或最佳实践建议将不胜感激。


Check enum of ActiveRecord - doc http://edgeapi.rubyonrails.org/classes/ActiveRecord/Enum.html.

在这里您可以配置您的:status:

class Hotel < ActiveRecord::Base
  enum status: { waiting_contract: 1, designing: 2 }

  def format_status
    status.to_s.humanize
  end
end

它将创建这样的方法:

hotel.waiting_contract?
hotel.designing?

hotel.waiting_contract!
hotel.format_status # => "Waiting contract"

希望有帮助!

UPDATE

类似的功能可以通过重写来实现status方法本身,尽管更建议使用单独的方法:

class Hotel < ActiveRecord::Base
  enum status: { waiting_contract: 1, designing: 2 }

  def status
    super.to_s.humanize
  end
end

此外,装饰者 https://github.com/drapergem/draper是您应该研究特定于视图的方法的内容。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将模型的整数属性映射到字符串? 的相关文章

随机推荐

  • 如何处理 Web API 中的可选查询字符串参数

    我正在编写一个 Web API 我希望了解处理可选查询字符串参数的最佳方法是什么 我有一个定义如下的方法 HttpPost public HttpResponseMessage ResetPassword User user var que
  • SQL Server 加权全文搜索

    目前 我有一个表 可以在 4 个字段 名字 姓氏 中间名和别名 上搜索 我目前有一个包含稳定搜索行并且它有效 不太好 但它有效 现在我想让名字的权重更高 中间名的权重更低 我找到了命令ISABOUT但如果我必须通过文字而不是专栏来完成它 那
  • 无法在基于 JHipster 的 Web 应用程序中运行从 Gradle BootRepackage 生成的 war

    我正在尝试与java jar生成的war文件 gradlew Pprod bootRepackage The bootRepackage任务成功结束 当我看着project root build libs 文件夹中 war 和 war or
  • 在 postgresql 中搜索数组中的元素而不使用循环

    我正在编写一个查询来搜索数组中的元素 使用 for 循环搜索效率不高 因为我的数组有很多元素 因此 查询需要花费大量时间来执行 那么任何人都可以说如何在没有 for 循环的情况下搜索数组中的元素 这应该更快 我必须获取搜索索引 谢谢 卡西卡
  • 如何修改内核DTB文件

    Summary 我目前正在为定制板编译 Linux 内核 内核 模块和 DTB 以及一些定制驱动程序 有时 我会编译内核并意识到 DTB 文件中的兼容性字符串不是自定义驱动程序正在寻找的内容 现在 我可以解决此问题的唯一方法是修改 DTS
  • 我想我需要一个简单的规则引擎? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 UINavigationController 上推送多个视图控制器时出现内存问题

    我正在为 iPad 制作一本互动书 并且正在使用UINavigationController实现页面与下一页之间的导航 当用户翻页时 下一页被推送到导航堆栈的顶部 我现在已经进入应用程序的 15 页 当我尝试从第 14 页转到第 15 页时
  • 如何重命名 Oracle 过程

    有没有一种方法可以重命名 Oracle 过程 而不必删除并重新创建该过程 不幸的是 没有等效的ALTER TABLE RENAMETO 用于 PL SQL 对象 所以恐怕您将不得不放弃该过程并使用新名称重新创建它 除非使用 SYNONYM
  • RxJava + 改造,获取列表并为每个项目添加额外信息

    我正在玩 RXJava 在 Android 中进行改造 我正在努力完成以下任务 我需要定期轮询一个给我 Observable gt 的调用 从这里我可以做到 一旦我得到这个列表 我想在每个交付中迭代并调用另一个方法来给我预计到达时间 所以只
  • 将“this”传递给 onclick 事件[重复]

    这个问题在这里已经有答案了 可能的重复 当前元素作为其事件函数参数 https stackoverflow com questions 4268085 the current element as its event function pa
  • 数组和结构体可以以不同的方式初始化吗?

    我的问题可能看起来很奇怪 事实上 这是上下文 我目前在切换时遇到一个奇怪的问题 关于我正在从事的项目 核心从pullinino到CV32 也发生了一些其他变化 例如关于crt0 如一些数据内存重置 这是一个 真实的 例子 说明了一个非常简单
  • asp.net 从内容页面更改母版页部分 css

    我的母版页中有以下代码 div div
  • 在 PHP 中为用户创建 CSV 文件

    我在 MySQL 数据库中有数据 我向用户发送一个 URL 以将他们的数据以 CSV 文件形式输出 我已经通过电子邮件发送了链接 MySQL 查询等 当他们点击链接时 我怎样才能弹出一个窗口来下载带有 MySQL 记录的 CVS 我已经掌握
  • 我可以在异步函数的 try/catch 块中使用多个“await”吗?

    i e async asyncfunction try await method1 await method2 catch error console log error 给定 method1 和 method2 是异步函数 每个await
  • 内核源码位置在Buildroot中

    我是 Buildroot 的新人 我有 P2041RDB NXP 板的 Linux 内核源代码 那么我应该将其放置在哪里以及如何在配置中设置此位置 目前无法从 Buildroot 配置中设置内核源代码的路径 您有两种选择 创建文件local
  • 将 ☺ 编码为 IBM-437 失败,而将 é 等其他有效字符编码成功

    gt gt gt bytes ibm437 Traceback most recent call last File
  • Android ExpandableListView 复选框选择仅单击的复选框

    我有一个简单的问题ExpandableListViews并使用CheckBoxes 我将在下面显示当前的代码 我目前有一个ExpandableListView每个子行中都有一个复选框 These checkboxes可以选择等等 但问题是我
  • 检查我的应用程序是否启用了使用访问权限

    我正在使用新的UsageStatsManager API to 获取当前前台应用程序 https stackoverflow com a 26885469 444324在 Android 5 0 棒棒糖中 为了使用此 API 用户必须在Se
  • 如何将多个转换声明应用于一个元素?

    我有一个具有两个类的元素 一个称为 rotate 会将元素旋转 360 度 另一个称为 doublesize 会将元素缩放为其正常大小的 2 倍 rotate transform rotate 0deg rotate hover trans
  • 如何将模型的整数属性映射到字符串?

    我的数据库中有一个 Hotels 表 其中一列是 status integer 我正在寻找将这些整数转换为字符串 所以1 Awaiting Contract 2 Designing 等等 我在 Stack 中搜索了一些答案 但缺乏答案让我觉