Как передать неправильное значение в качестве аргумента в I18n, используя rails, проверяет правильность включения?

Я хочу подтвердить включение в 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 ответ

Я нашел решение: добавление значения в кавычки с помощью% решает эту проблему.

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
Другие вопросы по тегам