サイトの 1 つで、ユーザー検証に authlogic gem を使用しています。すべて順調に進んでいますが、ユーザーが無効な電子メール アドレスを入力したときに返されるエラー メッセージを変更できないかと考えています。
ありがとう!
サイトの 1 つで、ユーザー検証に authlogic gem を使用しています。すべて順調に進んでいますが、ユーザーが無効な電子メール アドレスを入力したときに返されるエラー メッセージを変更できないかと考えています。
ありがとう!
authlogic には、この目的のための特別な設定があります。
class UserSession < Authlogic::Session::Base
generalize_credentials_error_messages true
end
パスワードまたは電子メールが間違っているかどうかに関係なく、エラー メッセージは同じです: 「電子メール/パスワードの組み合わせが無効です」 。の代わりに文字列を指定して、メッセージのテキストを変更できますtrue
。
generalize_credentials_error_messages "Try again"
で電子メール検証の設定をオーバーライドできます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
(これは、プラグインがデフォルトの英語の文に設定する前に検索するものであり、国際的なアプリケーションを構築している場合にも役立ちます)。
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."