2012-12-19 10 views

答えて

8

初期化子/ my_custom_error_messages.rb

ActionView::Base.field_error_proc = Proc.new do |html_tag, instance| 
    errors = Array(instance.error_message).join(',') 
    %(#{html_tag}<span class="validation-error">&nbsp;#{errors}</span>).html_safe 
end 

更新:ラベルのない

ActionView::Base.field_error_proc = Proc.new do |html_tag, instance| 
    errors = Array(instance.error_message).join(',') 

    if html_tag =~ /^<label/ 
    html_tag 
    else 
    %(#{html_tag}<span class="validation-error">&nbsp;#{errors}</span>).html_safe 
    end 

end 

REF:rails guide

+0

この方法は実際には入力だけでなくラベルにもエラーメッセージを追加します。 –

+0

はf.labelフィールドを無視し、入力フィールドにのみエラーを適用する方法はありますか? –

+0

答えを更新しました。 – emrahbasman

1

あなたはフィールド

<%= simple_form_for @user do |f| %> 
     <%= f.input :username %> 
     <%= f.input :password %> 
     <%= f.button :submit %> 
    <% end %> 

そして、あなたは、フォームの使用のトップformタグの後

object.error_messages 

に検証エラーを表示したい場合に検証エラーを表示するようにsimple_form宝石を使用することができます

0

レイアウトの最上部のdivに@model.errorsの繰り返しがあるため、フォームの上部にエラーが表示されます。このコードを移動して各フィールドのハッシュのエラーをチェックすれば、あなたが望むものを磨くことができます。

+0

サンプルコードを提供できますか? –

1

これはRailsのの一部に使用され、今では宝石で利用可能です:それはあなたが簡単にフォームビルダオブジェクトの任意の特定の属性のエラーを表示することができます

https://github.com/joelmoss/dynamic_form

、例えば:

<%= f.text_field :foo %> 
<%= f.error_message_on :foo %> 
0
<td class="error"><%[email protected][:firstname].join(",") %></td> 
+0

エラー[]は、検証中にエラーを処理するエラー配列です。エラーを指定することができます:[:オブジェクト名]は、特定のオブジェクトに関連するエラーを表示します。 for: –

+0

あなたの投稿を編集して、コメントが食べたコードを含めてください。 –

関連する問題