Мое флэш-сообщение не отображается, когда я использую i18n, но отображается, когда я просто использую строку.Это в контроллере приложения.
Это работает:
def user_not_authorized(exception)
policy_name = exception.policy.class.to_s.underscore
## require 'pry'; binding.pry
flash[:alert] = "You're not invited for this event."
redirect_to request.referrer || root_path
end
Это ничего не показывает:
def user_not_authorized(exception)
policy_name = exception.policy.class.to_s.underscore
## require 'pry'; binding.pry
flash[:error] = I18n.t "#{policy_name}.#{exception.query}", scope: 'pundit',
default: [:default, "I'm sorry, you're not allowed"]
redirect_to request.referrer || root_path
end
Я пытался использовать только t
вместоI18n.t
но эффекта тоже нет.
При использовании pry
и запуске I18n.t
отображается ожидаемая строка.
Файл i18n:
pundit:
default: "I'm sorry, but you're not allowed to see this."
event_policy:
show?: 'You cannot view this event. You need an invitation first.'
Что я делаю не так?