16

サイトの 1 つで、ユーザー検証に authlogic gem を使用しています。すべて順調に進んでいますが、ユーザーが無効な電子メール アドレスを入力したときに返されるエラー メッセージを変更できないかと考えています。

ありがとう!

4

3 に答える 3

16

authlogic には、この目的のための特別な設定があります。

class UserSession < Authlogic::Session::Base  
  generalize_credentials_error_messages true
end

パスワードまたは電子メールが間違っているかどうかに関係なく、エラー メッセージは同じです: 「電子メール/パスワードの組み合わせが無効です」 。の代わりに文字列を指定して、メッセージのテキストを変更できますtrue

generalize_credentials_error_messages "Try again"
于 2010-01-19T16:44:32.593 に答える
14

で電子メール検証の設定をオーバーライドできますvalidates_format_of_email_field_options。ただし、メッセージのみを変更したい場合は、オプションをマージしてmerge_validates_format_of_email_field_options、指定したオプションのみを上書きすることができます。次のようにユーザーコントローラーで設定を指定します。

class User < ActiveRecord::Base
    acts_as_authentic do |c|
        c.merge_validates_format_of_email_field_options :message => 'My message'
    end
end

長さと一意性の検証の設定を変更することもできます。他にも多くの設定があります。ドキュメントを参照してください。各モジュールの ::Config セクションで、設定とそのデフォルト値、およびそれらを上書きする方法を見つけることができます。

あるいは、ローカリゼーションと設定を使用することもできますerror_messages.email_invalid(これは、プラグインがデフォルトの英語の文に設定する前に検索するものであり、国際的なアプリケーションを構築している場合にも役立ちます)。

于 2009-12-17T03:56:50.330 に答える
4

en.ymlファイルを変更してAuthlogicエラーメッセージを上書き
します。

en:
  authlogic:
      error_messages:
         login_blank: "Please enter the email address."
         login_not_found: "This email address is already in the system. Please choose a different email address."
         login_invalid: "Please enter a valid email address."
于 2012-10-30T15:07:55.283 に答える