Rails:如何将 i18n 与 Rails 4 枚举一起使用

2023-12-03

Rails 4 活动记录枚举很棒,但是使用 i18n 进行翻译的正确模式是什么?


从Rails 5开始,所有模型都将继承自ApplicationRecord.

class User < ApplicationRecord
  enum status: [:active, :pending, :archived]
end

我使用这个超类来实现翻译枚举的通用解决方案:

class ApplicationRecord < ActiveRecord::Base
  self.abstract_class = true

  def self.human_enum_name(enum_name, enum_value)
    I18n.t("activerecord.attributes.#{model_name.i18n_key}.#{enum_name.to_s.pluralize}.#{enum_value}")
  end
end

然后我将翻译添加到我的.yml file:

en:
  activerecord:
    attributes:
      user:
        statuses:
          active: "Active"
          pending: "Pending"
          archived: "Archived"

最后,为了获得我使用的翻译:

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

Rails:如何将 i18n 与 Rails 4 枚举一起使用 的相关文章

  • 在 C 中使用枚举而不是 #defines 作为编译时常量是否合理?

    在 C 工作了一段时间后 我将回到 C 开发领域 我已经意识到 在不必要的时候应该避免使用宏 以便让编译器在编译时为您做更多的工作 因此 对于常量值 在 C 中我将使用静态 const 变量或 C 11 枚举类来实现良好的作用域 在 C 中
  • postgres 数组字段上的 ActiveAdmin 过滤器

    我在 ActiveAdmin 中添加了以下过滤器 filter roles as select collection Model ROLES multiple true 但是当我选择过滤器值来搜索角色时 它给了我以下错误 PG Invali
  • 在这种情况下(C#)替换开关块和枚举的正确方法是什么?

    如果有帮助的话 以下问题是在我正在构建的游戏的背景下提出的 在几个不同的地方我有以下场景 存在一个父类 在本示例中称为 Skill 并且我有许多子类实现父类中的方法 还有另一个父类 我们称之为 Vocation 这些技能需要列在职业的不同子
  • 如何从 Java 中的常量向注释提供枚举值

    我无法使用从常量获取的枚举作为注释中的参数 我收到此编译错误 注释属性 attribute 的值必须是枚举常量表达式 这是枚举代码的简化版本 public enum MyEnum APPLE ORANGE 对于注释 Retention Re
  • 如何判断枚举属性是否已设置? C#

    我有一个具有枚举属性的类 如下所示 public class Foo public Color ColorType get set public enum Color Red Green 现在这个类可以像这样初始化 var foo new
  • 如果不选择 Updated_at 属性,则无法更新 Rails 4 中的模型

    我正在从 Rails 3 2 13 升级到 4 并遇到更新模型的问题 我正在尝试仅更新模型上的单个属性 其中我只有 id 我还需要验证和回调 这在 Rails 3 中运行良好 但在 Rails 4 中遇到了麻烦 在 Rails 4 中 如果
  • 选择 mysql 枚举的 php 函数

    因此 我创建了一个函数 它将从数据库中的枚举字段中提取值
  • 枚举和匹配属性的 C# 命名约定

    我经常发现自己实现了一个类 将某种自己的状态属性维护为枚举 我有一个 Status 枚举和一个 Status 类型的 Status 属性 我应该如何解决这个名称冲突 public class Car public enum Status O
  • 枚举

    我试图拥有一组扩展通用接口的枚举 例如 interface Fooable void someCommonMethod enum E1 implements Fooable some enumuerations and a definiti
  • 使用 Rails 4(和 Hstore)在 PostgreSQL 中存储嵌套哈希

    我有一个 Rails 应用程序 它聚合了来自 Google API 的大量数据 我当前将 JSON 响应存储在 MongoDB 中 因此我的 Rails 应用程序同时具有 pg 和 mongo 然而 今天 我遇到了 PostgreSQL H
  • 当我只有一个简短的显示名称时如何获取枚举?

    我得到一个短显示名称 我需要使用它来获取枚举值 Display Name Alabama ShortName AL Alabama 1 我刚刚从外部数据库获取 AL 我需要以某种方式读取我的枚举并获得正确的值 感谢大家的帮助 jasel我稍
  • 如何从 Rails 中的枚举值获取键名?

    我的模型中有一个与数据库中的列相对应的枚举 枚举看起来像 enum efficency High 0 Medium 1 Low 2 如何从值中获取密钥 例如 我的值为 0 我需要获取值 High 任何帮助 将不胜感激 Model effic
  • Rails 4 - 如何在活动记录查询中为includes()和joins()指定别名

    我如何给出别名 例如includes 给出如下 用户 活动记录模型 Student 活动记录模型 继承自User STI Teacher 活动记录模型 继承自User STI 项目 活动记录模型 这里有一些例子 第一个案例 更多性传播感染协
  • 如何从Python枚举类中获取所有值?

    我正在使用 Enum4 库创建一个枚举类 如下所示 class Color Enum RED 1 BLUE 2 我要打印 1 2 作为某处的列表 我怎样才能实现这个目标 您可以执行以下操作 e value for e in Color
  • Rails 模型中的 class_nameforeign_key

    我最近遇到了这段代码 用户有很多答案 class name 和 foreign key 的目的是什么 class Answer lt ApplicationRecord belongs to user class name gt Quest
  • Cakephp + 枚举支持:无法保存或选择枚举 0 和 1

    当我保存具有两个枚举字段的数据来管理消息状态时 即用户已读或未读 我使用枚举 1 0 来管理状态 1 gt 已读和 0 gt 未读 以下代码将保存消息 但在状态栏中保存空文件 data array message gt test messa
  • Rails redirect_to 页面部分

    对于正常的重定向 它会是这样的redirect to root path 我如何重定向到类似的内容 localhost 3000 contact 我不仅想重定向到根 还想重定向到根 还想重定向到根页面的联系部分 这可能吗 这应该有效 red
  • 视频无法使用 Paperclip Gem - Rails 中的 ffmpeg 上传

    我可以上传图像 但是 当我尝试上传视频时 它会显示为黑屏 并且播放按钮不起作用 我不确定我哪里错了 我需要视频播放器才能实现此功能吗 这可能是一个简单的解决方案 但是 我是 Rails 新手 任何帮助是极大的赞赏 谢谢 邮政模型 class
  • 在特定页面上执行 javascript 的正确“Rails”方式

    我试图在特定页面上运行 javascript 而我唯一的解决方案似乎是反模式 我有controller js内部生成的assets javascripts 我在用着gem jquery turbolinks 我的代码类似于以下内容 docu
  • Java - 为什么不允许 Enum 作为注释成员?

    It says 原始 String Class an Enum 另一个注释 上述任何一个的数组 只有这些类型才是合法的 Annotation 成员 为什么泛型 Enum 不能成为 Annotation 的成员 例如 Retention Re

随机推荐

  • 检测到自引用循环 - 将数据从 WebApi 返回到浏览器

    我正在使用实体框架 并且在将父级和子级数据获取到浏览器时遇到问题 这是我的课程 public class Question public int QuestionId get set public string Title get set
  • 删除所有行并保留最新的 x left

    我有一张像这样的桌子 entryid roomid 1 1 2 55 3 1 4 12 5 1 6 44 7 1 8 3 9 1 现在我想删除 roomid 1 的所有条目并保留 剩余 roomid 1 中的最新 3 个 最好只用一个命令
  • 如何在通过括号表示法访问的元素上使用 jQuery 方法?

    jQuery 对象中的元素可以通过括号表示法访问 如下所示 div 0 但在这种情况下不能使用 jQuery 方法 还有其他方法可以访问某些元素或使用 jQuery 方法吗 如果您尝试获取集合中的第一个 jQuery 对象 请使用 jQue
  • 使用 pyfpdf 将 Base64 图像插入 pdf

    我在 python 中使用 pyfpdf 来生成 pdf 文件 我有一个 Base64 我想将其插入到 pdf 文件中 而不必将其另存为文件系统中的图像 但 pyfpdf 图像函数仅接受文件路径 fpdf image name x None
  • 选择组合的子集

    假设我有一个 20 X 5 矩阵 我想选择矩阵的子集并用它们进行一些计算 进一步假设每个子矩阵是 7 X 5 我当然可以这样做 ncomb lt combn 20 7 这给了我 7 个行索引的所有可能组合 我可以使用它们来获取子矩阵 但对于
  • 将 System.Web.UI.WebControls.Image 转换为 System.Drawing.Image?

    我似乎无法转换它 有什么帮助吗 它们是两个完全不同的对象 System Web UI WebControls Image是一个能够渲染 HTML 的控件 它将使浏览器下载并显示指定的图像 System Drawing Image是一个类 能
  • RODBC 和 Access - 加载数据

    我正在尝试将一些数据从 Access 数据库加载到 R 中 我能找到的所有说明都说使用 odbcConnectAccess file mdb 但我似乎无法加载此函数 是否已被替换或重命名 还有其他方法可以做到这一点吗 我已经用库 RODBC
  • 适用于 Android 和 GSON 的 ProGuard

    我正在为我的 Android 项目设置 ProGuard 我的项目也使用GSON 我研究了 ProGuard 配置与 GSON 和 Android 的兼容性 并发现了 google gson 提供的这个示例https code google
  • Python Seaborn 绘制空白直方图

    我正在尝试使用 python 中的seaborn 绘制直方图 但它给我的只是一个空白的数字 这里是describe 我的专栏 代码 plt subplots figsize 7 7 sns histplot data contratos x
  • 如何动态向react-bootstrap-table列添加href?

    我在react中使用react bootstrap table作为数据表 这里从后端获取c data作为JSON对象 如何动态地将ahref添加到react bootstrap table中的列 const data id 0 name J
  • 将列表传递给 subprocess.run

    我有一个脚本 其中包含一个列表 该列表只是我想传递给的一些参数subprocess run像这样 commands bash command 1 bash command 2 这是我的代码 commands bash command 1 b
  • Pandas read_csv 更改以 0 开头的列

    我有一个脚本 可以从 csv 文件中读取一些邮政编码 邮政编码的格式如下 zipcode 75180 90672 01037 20253 09117 31029 07745 90453 12105 18140 36108 10403 764
  • Bitbucket 管道:gcloud 崩溃 (UnicodeDecodeError)

    编辑 我想指出 如果我在计算机上使用云 sdk 手动部署 则不会发生此问题 仅限管道 再次编辑 我在 gcloud 应用程序部署中添加了 verbosity debug 这是生成的内容 Do you want to continue Y n
  • Jersey REST 服务上的用户身份验证

    我正在开发一个 REST 应用程序 它使用 Jersey 框架 我想知道如何控制用户身份验证 我查了很多地方 找到最接近的文章是这样的 http weblogs java net blog 2008 03 07 authentication
  • 当 RecyclerView 正在计算布局或尝试从 recyclerview 中删除项目时滚动时,无法调用此方法

    我正在尝试从 recyclerview 中删除我的项目 但我总是收到错误 java lang IllegalStateException 无法调用此方法 RecyclerView 正在计算布局或滚动 我正在使用notify datasetc
  • DataTable Wrapper 或如何将 UI 与业务逻辑解耦

    我正在使用 Web 表单 C Asp net 众所周知 在这个模型中 UI和业务逻辑经常是混合在一起的 如何有效地将它们分开呢 我想使用的例子是 我有一个 GridView 和一个 DataTable GridView 绑定到 DataTa
  • 引用类型作为参数

    所以我深入阅读 Jon Skeet 的 C 并遇到了一些误解 比如引用类型总是通过 ref 传递 所以我决定自己做一个小实验 正如您在下面的代码中看到的 我有一个简单的 Car 类 其中一个属性在调用构造函数时初始化为 500 我还有 Nu
  • 在多个图中添加单独的箭头

    我想在用 ggplot 和 faceting 生成的 2 个图中添加箭头 问题 如何避免两个图中的箭头重复 我想为每个图添加单独的箭头 这是一个例子 library ggplot2 data frame with fake data xdf
  • Ruby 三元运算符结构

    puts bool true false 是正确的 但是 bool puts true puts false 不是 有人可以向我解释这是为什么吗 边注 bool puts true puts false 效果也很好 当您不在方法调用上添加括
  • Rails:如何将 i18n 与 Rails 4 枚举一起使用

    Rails 4 活动记录枚举很棒 但是使用 i18n 进行翻译的正确模式是什么 从Rails 5开始 所有模型都将继承自ApplicationRecord class User lt ApplicationRecord enum statu