2012-12-19 19 views

risposta

8

inizializzatori/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 

aggiornamento:

senza etichetta

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

in questo modo aggiunge effettivamente messaggi di errore non solo agli input ma anche alle etichette –

+0

c'è un modo per ignorare i campi f.label e applicare gli errori solo ai campi di input? –

+0

Aggiornamento della risposta. – emrahbasman

1

È possibile utilizzare gemma simple_form per mostrare l'errore di convalida con i campi

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

E se si desidera visualizzare l'errore di convalida sulla parte superiore di utilizzo forma

object.error_messages 

Dopo modulo tag

0

Gli errori vengono visualizzati nella parte superiore del modulo a causa dell'iterazione @model.errors nel div superiore del layout. Se sposti questo codice per verificare la presenza di errori sul tuo hash su ciascun campo, puoi ottenere ciò che desideri.

+0

è possibile fornire qualsiasi codice di esempio? –

1

Ciò consente di essere parte di Rails, ora è disponibile in una gemma:

https://github.com/joelmoss/dynamic_form

Esso permette di visualizzare facilmente gli errori per un particolare attributo di un oggetto form builder, ad esempio:

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

errori [] è una matrice di errori per gestire qualsiasi errore durante la convalida. possiamo specificare errori [: nome oggetto] mostrerà l'errore relativo a un oggetto particolare. ad esempio: –

+0

Dovresti [modificare] il tuo post per includere il codice che il commento ha mangiato. –

Problemi correlati