2013-07-10 9 views
6

私はRubyアプリケーションのRubyでdevise gemを使用しています。電子メールがすでに存在する場合、ユーザーサインアップでは、既定のメッセージ「電子メールが既に取得されました」が表示されます。変更通知メッセージ「電子メールはすでに取得済みです」

は、私は私が使用しているビューで

activerecord: 
    errors: 
     messages: 
     taken: "User with same email already exists. Please try with another email address." 

en.ymlにこのメッセージを変更しました:

<div class="notice"><%= devise_error_messages! %></div> 

は、今私が取得していますメッセージは、問題がある

"Email User with same email already exists. Please try with another email address." 

です最初に「電子メール」が追加されます。

このデフォルトメッセージを変更する他の方法はありますか?

en: 
    errors: 
    format: "%{message}" 

デフォルトへのメッセージの

+0

別のオプションを更新をしながらあなたは、既存のユーザーを考慮する必要があります。https://stackoverflow.com/questions/9006270/where-can-i-change-the-email -has-already-been-taken-error-message – user1515295

答えて

7

変更の形式は、別の解決策はあり"%{attribute} %{message}"

UPDATE

です。私はこれが回避策だと知っていますが、ここに行く.. 既存の検証を削除し、カスタム検証を追加します。

validate :email_uniqueness 

def email_uniqueness 
    self.errors.add(:base, 'User with same email already exists. Please try with another email address.') if User.where(:email => self.email).exists? 
end 

注:

+0

返信いただきありがとうございます。その働き。このメッセージのフォーマットのみを変更できますか? – Arif

+0

AFIK、できません。属性名を含めるために他のすべてのメッセージを補間する必要があります。または、デフォルトの書式を変更する代わりに、エラーメッセージで正規表現置換を行うことができます。 – Santhosh

+0

私の編集を確認してください – Santhosh

関連する問題