2017-04-10 12 views
1

私は自分のアプリケーションで正しく構成し、ヘルパーがフィールドの隣に個々のエラーメッセージを表示するように働いています。現時点では、エラーは「空白にすることはできません」または「既に行われています」と表示されます。 「ユーザー名は空白にできません」または「 メールがすでに取得されています」のようにプレフィックスを追加したいのですが、どのように把握できません。接頭辞を追加してエラーヘルパーを作成する

これは私が達成したいものを基本的にですが、

<%= "Username" + errors_for @user, :username %> 

user.rb

def errors_for(model, attribute) 
     if model.errors[attribute].present? 
     content_tag :div, :class => 'error_explanation' do 
      model.errors[attribute].join(", ") 
     end 
     end 
    end 

工夫/登録/ new.html.erb

<%= f.text_field :first_name, autofocus: true, class: 'form-control', placeholder: 'First name' %> 
    <%= errors_for @user, :first_name %> 
    <br> 
    <%= f.text_field :username, autofocus: true, class: 'form-control', placeholder: 'Username'%> 
    <%= errors_for @user, :username %> 
    <br> 

答えて

0

を動作しません。次の方法で完全なメッセージを受け取ることができます:

@user.errors.full_messages_for(:first_name) 
@user.errors.full_messages_for(:username) 

またはすべての完全なエラーメッセージを取得する

@user.errors.full_messages 

を使用しています。

あなたは言語ファイルにモデルフィールド名とエラーメッセージを変更することができますconfig/locales/**.ymldevise範囲で。)

例:アプリの言語は英語である場合、あなたはあなたのconfig/locales/en.yml

en: 
    activerecord: 
    attributes: 
     user: 
     first_name: "your custom field name" 
    errors: 
     messages: 
     blank: "your custom error message" 

を編集hereから詳しい情報を得ることができます。

これが役に立ちます。

+0

ありがとうございますが、これはうまくいきますが、["ファーストネームは空白にできません"]、[""]を取り除き、エラーメッセージのスタイルを設定したいと思います。それ、どうやったら出来るの? – Joshua

+0

私は自分の答えを更新しました。それが役に立つと願っています。 – hoangdd

関連する問題