2

Rails アプリで Devise を使用していますが、エラー メッセージですべてのモデル名を小文字にするのはなぜだろうかと思います: Github のソース コード

これをオーバーライドする方法はありますか?

たとえばドイツ語では、名詞は大文字で始まります。たとえば、"Benutzer" は正しいですが、"benutzer" は間違っています。

私はこれを持っていますdevise.de.yml

de:

  activerecord:
    models:
      user: "Benutzer"

ただし、Devise は引き続きBenutzer小文字でレンダリングします。

Konnte benutzer nicht speichern

これは間違っています!

どうすればこれを修正できますか?

助けてくれてありがとう...

4

2 に答える 2

2

クイックフィックス

app/helpers/devise_helper.rb次の内容のファイルを追加します。

module DeviseHelper
  def devise_error_messages!
    return "" if resource.errors.empty?

    messages = resource.errors.full_messages.map { |msg| content_tag(:li, msg) }.join
    sentence = I18n.t("errors.messages.not_saved",
                      :count => resource.errors.count,
                      :resource => resource.class.model_name.human)

    html = <<-HTML
    <div id="error_explanation">
      <h2>#{sentence}</h2>
      <ul>#{messages}</ul>
    </div>
    HTML

    html.html_safe
  end
end

:resource私の編集の前に強制的に小文字にされました:

resource.class.model_name.human.downcase

https://github.com/plataformatec/devise/blob/master/app/helpers/devise_helper.rbから引用したソース

于 2013-04-23T15:26:38.057 に答える
0

ヘルパーでデバイスのメソッドを上書きし、devise_error_messages!そこにロジックを配置する必要があると思います (ドイツ語以外のロケールでダウンケースが必要な場合は、ロケールごとにダウンケースを削除するかケースを作成します)。

于 2013-04-23T15:31:38.300 に答える