0

デフォルトを使いたくない

<%= f.submit %>

また、アイコンを埋め込むヘルパー関数を作成しました。ヘルパー関数は、新しく作成されたボタンにラベルが付けられることを期待しています。

私はそれをこのように呼んでいます:

<%= submit_button("icon-plus", I18n.translate("helpers.submit.create")) %>

しかし今、このテキストはボタンに表示されます:

%{model} toevoegen

それ以外の:

製品タイプtoevoegen

通常の送信ボタンを使用すると、正しいテキストが表示されるので、ymlファイルは正しいです。ヘルパーで使用する正しいテキストを取得するにはどうすればよいですか?

ヘルパーコード:

def submit_button(icon, label)
  link_to "javascript:void(0)", :class => 'btn btn-primary', :onclick => "$(this).closest('form').submit()" do
  raw('<div class="') + icon + raw(' icon-white"> ') + label +raw('</div>')
  end
end
4

1 に答える 1

0

I18nガイドに記載されているように、この関数は、2番目の引数(ハッシュ)を使用して、角かっこtranslateで渡された変数を補間します。%{}

あなたの場合、あなたはこれをすることmodelによってそれを伝える必要があります:

I18n.t("helpers.submit.create", model: "Product type")

どのモデルでも機能する汎用オプションが必要な場合は、GitHubのソースを見ると、Rails自体がどのように機能するかを確認できます。

I18n.t("helpers.submit.create", model: f.object.class.model_name.human)

余談ですが、そこで使用する必要はありません(おそらく使用すべきではありません)raw。達成しようとしていることは、組み込みのヘルパーを使用して簡単に実行できます。

link_to ... do
  content_tag :div, label, class: "#{icon} icon-white"
end
于 2013-01-12T19:57:50.507 に答える