如何使用Rails在I18n中将错误值作为参数传递来验证包含验证?

时间:2019-01-10 17:09:16

标签: ruby-on-rails validation rails-i18n

我想验证是否包含在我的country_code表的Country字段中。 我想使用 I18n 显示无效记录的特定错误。

我的模特:

class Country < ApplicationRecord
  validates :country_code,
        inclusion: { in: ISO3166::Country.codes, allow_blank: true, message: I18n.t('models.country.invalid_country_code', value: value) }

end

我的本​​地化

de:
  models:
    country:
      invalid_country_code: "%{value} is invalid"

但是我在控制台中看到NameError: undefined local variable or method "value" for #<Class:0x00007f8e5de83dc8>错误消息。

1 个答案:

答案 0 :(得分:3)

我找到了解决方案:将放在带有%的引号中可以解决此问题。

class Country < ApplicationRecord
  validates :country_code,
    inclusion: { in: ISO3166::Country.codes, allow_blank: true, message: I18n.t('models.country.invalid_country_code', value: '%{value}') }

end