Railsが自動的に値を取得するように、i18nロケールファイルにいくつかのプリセット構造があることを私は知っています。たとえば、新しいレコードのデフォルトの送信ボタン テキストを設定する場合:
# /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 構造は何ですか?