Я знаю, что в локальном файле 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 по умолчанию для них?