В Rails как указать стандартные флеш-сообщения в файле локали i18n
Я знаю, что в файле локали 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"
Поэтому 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 по умолчанию для них?