我有一个模型user_input.rb
class UserInput
include ActiveModel::Validations
include ActiveModel::Conversion
extend ActiveModel::Naming
# attributes
attr_accessor :patientNum, :recordLimit
validates_presence_of :patientNum
validates :patientNum, :numericality => { :only_integer => true, :greater_than_or_equal_to => 0}
def initialize(attributes={})
attributes.each do |name, value|
send("#{name}=",value)
end
end
def persisted?
false
end
end
当我收到错误消息时,我会收到
等消息“Patientnum不是数字”
我想将Patientnum更改为“患者编号”
我当前的en.yml文件是
en:
hello: "Hello world"
errors:
format: "%{message}"
user_input:
attributes:
patientNum: "Patient Number"
这对我来说很棘手,因为我的模型不是ActiveRecord :: Base
答案 0 :(得分:1)
attributes:
patientNum: "Patient ID"
答案 1 :(得分:0)
ActiveModel::Validations
使用ActiveModel::Translation
生成错误消息中使用的人类可读属性名称。
对于您的类和属性名称,它将按以下顺序查找以下I18n键:
activemodel.attributes.user_input.patientNum
attributes.patientNum
如果找不到,则会回退到默认值'patientNum'.humanize
。
有关详细信息,请参阅ActiveModel::Translation#human_attribute_name
的实施。