无法在错误消息上添加属性值
unable to add attribute value on Error message
我在 user_calendar 模型上有一个自定义验证方法:
class UserCalendar < ActiveRecord::Base
belongs_to :user
validate :should_match_company_calendars
...
private
def should_match_company_calendars
day_company_calendars = (..query..)
errors.add(:user, :company_calendar_match) if day_company_calendars.count < 1
end
这是 en.yml 上的消息:
company_calendar_match: "%{value.full_name} does not work in the selected time lapse"
验证工作正常,但消息显示“%{value.full_name}”而不是 full_name 的实际值。我错过了什么?
您应该调用 I18n.t
方法并传递您想要显示的值,如下所示。
# model
errors.add(:user, I18n.t('... company_calendar_match', full_name: 'set value you want')) if day_company_calendars.count < 1
# en.yml
company_calendar_match: "%{full_name} does not work in the selected time lapse"
我在 user_calendar 模型上有一个自定义验证方法:
class UserCalendar < ActiveRecord::Base
belongs_to :user
validate :should_match_company_calendars
...
private
def should_match_company_calendars
day_company_calendars = (..query..)
errors.add(:user, :company_calendar_match) if day_company_calendars.count < 1
end
这是 en.yml 上的消息:
company_calendar_match: "%{value.full_name} does not work in the selected time lapse"
验证工作正常,但消息显示“%{value.full_name}”而不是 full_name 的实际值。我错过了什么?
您应该调用 I18n.t
方法并传递您想要显示的值,如下所示。
# model
errors.add(:user, I18n.t('... company_calendar_match', full_name: 'set value you want')) if day_company_calendars.count < 1
# en.yml
company_calendar_match: "%{full_name} does not work in the selected time lapse"