Estoy usando la gema simple_form. Quiero personalizar el mensaje de error que se muestra cuando un usuario no valida las validaciones. ¿Cómo puedo lograr esto?Personalizar el mensaje de error con simple_form
Respuesta
Puede cambiar fácilmente el mensaje de error predeterminado en el archivo de traducción, que se encuentra en config/locales/simple_form.en.yml
.
En el inicializador específico, config/initializers/simple_form.rb
puede anular las opciones predeterminadas de cómo se genera el html.
Espero que esto ayude.
Para completar, me gustaría añadir que formtastic es una opción más fácil para empezar, ya que tiene un diseño predeterminado. Me gusta simple_form mucho, pero no ofrece ningún formato fuera de la caja, pero esa es su intención. Con Formtastic es muy difícil (imposible) cambiar el html generado, y con simple_form puedes moldear completamente el html generado a tu gusto. Esto es especialmente útil si tiene un diseñador, y los formularios que genera deben generar el mismo html. Entonces, si estás empezando, formtastic te dará resultados más agradables más rápido. También tenga en cuenta que es bastante fácil de cambiar, porque la sintaxis es casi idéntica.
¿cuál es la sintaxis para cambiar los mensajes de error predeterminados en 'simple_form.en.yml'? ¿Qué sucede si tiene dos validaciones para un atributo, como ': presence => true' y': format => ... '? ¿cómo proporcionarías diferentes mensajes para cada uno? –
Los mensajes de validación estándar no tienen nada que ver con simple_form, pero es ActiveRecord estándar. O declaras explícitamente el mensaje en la validación o puedes consultar https://github.com/svenfuchs/rails-i18n donde se definen los mensajes estándar (y cómo sobrescribirlos). – nathanvda
¿Hay alguna manera de configurar simple_form para vincular etiquetas y mensajes de error con el registro activo predeterminado i18n yaml? – Matthias
Se puede declarar el contenido del mensaje error en su modelo:
validates_length_of :name, :minimum => 5, :message => "blah blah blah"
Puede establecer
id
oclass
para su etiqueta error:<%= f.input :name, :error_html => { :id => "name_error"} %>
A continuación, puede usar CSS para el diseño.
Y puede utilizar
<%= f.error :name, :id => "name_error" %>
y obtendrá
<span class="error" id="name_error">is too short (minimum is 5 characters)</span>
No sé si es diferente de la gema simple_form.
Para que se modifique el contenido de los mensajes de error, puede utilizar el atributo :message
en el modelo.
class User < ActiveRecord::Base
validates :email, {:presence => true, :message => "is not filled up."}
end
Ahora el mensaje de validación será Email is not filled up
. Si desea que el nombre de campo también ser cambiado (Email
a E-mail address
algo por el estilo), el enfoque actual es definirlo en locales.rb
archivo así
# config/locales/en.yml
en:
activerecord:
attributes:
user:
email: "E-mail address"
Ver link para obtener detalles sobre locales
. Otro enfoque es definir en el modelo, los atributos humanizados como este:
class User < ActiveRecord::Base
validates :email, {:presence => true, :message => "is not filled up."}
HUMANIZED_ATTRIBUTES = {
:email => "E-mail address",
...(other fields and their humanized names)
...
}
def self.human_attribute_name(attr, options={})
HUMANIZED_ATTRIBUTES[attr.to_sym] || super
end
end
Para personalizar el estilo del mensaje de validación tendremos que editar el estilo de #errorExplanation
y .fieldWithErrors
, en el scaffold.css
hoja de estilo.
- 1. Mensaje de error de personalizar primavera
- 2. Cómo personalizar el mensaje de error de validación JSF
- 3. Cómo personalizar el cuadro de mensaje
- 4. personalizar el mensaje jQuery Validación y marcado
- 5. Cómo mostrar el cuadro de mensaje de error y advertencia en .NET/Cómo personalizar el cuadro de mensaje
- 6. Formulario AJAX (utilizando simple_form) con preservación de validación de error
- 7. Mostrar el mensaje de error con Sinatra
- 8. Rails simple_form: deshabilitar etiquetas de error
- 9. ¿Form_tag funciona con Simple_form?
- 10. cómo personalizar los carriles mensaje de error de validación activerecord para mostrar el valor del atributo
- 11. rieles/Diseñar - Personalizar mensaje flash (devise.en.yml) con un link_to
- 12. El mensaje de error personalizado i18n arroja un error InvalidPluralizationData?
- 13. entrada simple_form con múltiples campos
- 14. mensaje de error con Scala AKKA Actor
- 15. Mensaje de error personalizado con HTTPStatusCodeResult & jQuery
- 16. Mensaje de error con respecto a IEnumerable.GetEnumerator()
- 17. Preseleccionar casilla de verificación con rieles Simple_form
- 18. sn.exe falla con el mensaje de error Acceso denegado
- 19. Configuración de mensaje de error personalizado con CarrierWave
- 20. jQuery.ajax devuelve error: Token inesperado con mensaje de error: parseerror?
- 21. etiquetas de colección simple_form
- 22. Personalizar error de validación de primavera
- 23. entrada de texto simple_form
- 24. rails simple_form - campo oculto - crear?
- 25. AWS Mensaje de error: InvalidInstanceID.NotFound
- 26. crear virtualenv mensaje de error
- 27. mensaje de error de PDO?
- 28. Python ValueError mensaje de error
- 29. Extensiones Django mensaje de error
- 30. Mensaje de error de excepción con número de línea incorrecto
¿Desea personalizar el mensaje de error o el estilo del mensaje de error se ha disociado? – rubyprince
inicialmente quise decir el contenido del mensaje de error, pero también me interesaría personalizar el estilo. Perdón por no ser claro. –