2008-09-24 4 views

Respuesta

11

El asistente error_messages_for que está utilizando para mostrar los errores acepta una opción :header_message que le permite cambiar el texto del encabezado predeterminado. Como en:

error_messages_for 'model', :header_message => "You have some errors that prevented saving this model"

El RubyOnRails API es su amigo.

+0

Perfecto - ¡gracias! – RichH

+0

Vale la pena mencionar: <% = f.error_messages: object_name => 'your information'%> –

0

Puede iterar sobre el hash model.errors usted mismo en lugar de usar el auxiliar de errores.

+0

Pensé en revisar el hash de errores en cada caso, pero esperaba DRY manera de hacerlo en el modelo – RichH

1

Los métodos "validates_" en su modelo generalmente se pueden pasar un : mensaje => "Mi mensaje de validación" parámetro.

lo general envuelvo errores en algo como esto:

<% if([email protected]?) %> 
<div id="error_message">   
    <h2> 
    <%= image_tag("error.png", :align => "top", :alt => "Error") -%> 
    Oops, there was a problem editing your information. 
    </h2> 
    <%= short_error_messages_for(:model) %> 
</div> 
<% end %> 

Luego, en mi application_helper que iterar sobre los errores y generar una lista simple:

def short_error_messages_for(object_name) 
    object = instance_variable_get("@#{object_name}") 
    if object && !object.errors.empty? 
     content_tag("ul", object.errors.full_messages.collect { |msg| content_tag("li", msg) })  
    else 
     "" 
    end 
    end 

Ese código es bastante viejo y probablemente no sea como escribiría Ruby estos días, pero entiendes la esencia.

Cuestiones relacionadas