Я знаю, что в локальном файле i18n есть некоторые предустановленные структуры, так что Rails автоматически извлекает значения. Например, если вы хотите установить текст кнопки отправки по умолчанию для новых записей:
# /config/locales/en.yml
en:
helpers:
submit:
create: "Create %{model}"
user:
create: "Sign Up"
В этом наборе в представлениях будет показано следующее:
# /app/views/things/new.html.erb
<%= f.submit %> #=> Renders a submit button reading "Create Thing"
# /app/views/users/new.html.erb
<%= f.submit %> #=> Renders a submit button reading "Sign Up"
So Rails использует предустановленную иерархию для получения текста кнопки отправки для разных моделей. (т.е. вам не нужно указывать, какой текст i18n получить при использовании f.submit.) Я пытался найти способ сделать это со вспышками уведомлений и предупреждений. Есть ли аналогичная предустановленная структура для указания флэш-сообщений по умолчанию?
Я знаю, что вы можете указать свои собственные произвольные структуры, такие как:
# /config/locales/en.yml
en:
controllers:
user_accounts:
create:
flash:
notice: "User account was successfully created."
# /app/controllers/users_controller.rb
def create
...
redirect_to root_url, notice: t('controllers.user_accounts.create.flash.notice')
...
end
Но утомительно указывать notice: t('controllers.user_accounts.create.flash.notice') каждый раз. Есть ли способ сделать это, чтобы контроллер "просто знал", когда нужно захватить и отобразить соответствующие флеш-сообщения, указанные в файле локали? Если да, то какова структура YAML по умолчанию для них?