ruby-on-rails - 国际化(翻译)数组的rails模型值如何?
问题描述
此部分存在于模型中,我们将其用于表单提交。
GENDER_TYPES = %w[Male Female Other]
解决方案
我不确定这是否适合您,但在这种情况下我所做的是使用(Rails 枚举)。在您的模型中:
class MyModel < ApplicationRecord
enum gender: [:male, :female, :other]
end
我的 ApplicationRecord 类:
class ApplicationRecord < ActiveRecord::Base
self.abstract_class = true
def self.enum_t(enum_name, enum_value)
I18n.t("activerecord.attributes.#{model_name.i18n_key}.#{enum_name.to_s.pluralize}.#{enum_value}")
end
end
在我的 en.yml 中:
en:
activerecord:
attributes:
my_model:
genders:
male: Male
female: Female
other: Other
在我看来要创建一个选择:
f.select :gender, MyModel.genders.keys.collect { |gender| [MyModel.enum_t(:gender, gender), gender] }
或显示动作:
= MyModel.enum_t(:gender, my_model.gender)
推荐阅读
- firebase - 等待未来函数完成其执行
- laravel - 在 Laravel 中显示在布局刀片中但不在 @content 中的图像
- python - 为什么我们在将函数绑定到 QAction 时使用 lambda
- sql - DateDiff 升序和降序
- android-studio - Firebase 在 MainActivity 中上传带有片段的文件
- reactjs - 在 React Native 中搜索联系人时,有没有办法避免或改进联系人列表的重新渲染
- mongodb - 猫鼬不能存储双重类型?
- maven - IntelliJ IDEA 在哪里存储“使用项目设置”设置
- go - 从 net/http 包中的 *urlError 访问 Timeout() 方法
- python - 熊猫时间戳年月不能直接访问