ruby-on-rails - validations - validates rails
¿Cómo cambiar el mensaje de validación de "3 errores prohibidos que este foobar se guarde" en Rails? (3)
Los métodos "validates_" en su modelo generalmente pueden pasar un parámetro : mensaje => "Mi mensaje de validación" .
En 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 , repito los errores y genero 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 la forma en que escribiría Ruby estos días, pero entiendes la esencia.
En mi aplicación de rieles utilizo los ayudantes de validación en mis objetos de registro activo y son geniales. Cuando hay un problema, veo el estándar "3 errores prohibieron que esta foobar se guarde" en mi página web junto con los problemas individuales.
¿Hay alguna manera de que pueda anular este mensaje predeterminado con el mío?
Puede iterar sobre el hash model.errors usted mismo en lugar de usar el auxiliar de errores.
El error_messages_for
helper que está utilizando para mostrar los errores acepta una opción :header_message
que le permite cambiar ese texto de encabezado predeterminado. Como en:
error_messages_for ''model'', :header_message => "You have some errors that prevented saving this model"
La API RubyOnRails es tu amiga.