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