Flash[:notice] vs error_messages_for

Cuando falla el login, el controlador manda ahora mismo un
flash[:notice] = “El usuario/contraseña introducidos no son
correctos”

Pero la diseñadora no quiere que el error de login salga en el flash,
sino que salga en forma de
<%= error_messages_for :usuario %>

Con el formato y ubicación similares a los errores de validación…

¿como puedo, desde el controlador, lanzar el mensaje de “El
usuario/contraseña introducidos no son correctos” en forma de error para
que la vista lo recoga con el error_messages_for? debe haber alguna
instrucción de raise error o algo así, pero no la encuentro…

On Nov 6, 2007, at 9:02 PM, Fernando C. wrote:

¿como puedo, desde el controlador, lanzar el mensaje de “El
usuario/contraseña introducidos no son correctos” en forma de error
para
que la vista lo recoga con el error_messages_for? debe haber alguna
instrucción de raise error o algo así, pero no la encuentro…

No se si lo entiendo muy bien, se trata del look & feel?

Si fuera eso no tienes por que cambiar el flujo, puedes asignar por
ejemplo a flash[:error] y crear un helper

<%= display_flash_error %>

que si flash[:error] no es blank? eche un HTML parecido para que
aplique el mismo CSS.

– fxn

P.D.: Ten en cuenta que flash es como una tabla hash, las llaves son
arbitrarias.

Puedes acceder al objeto de errores de cada modelo usando el método
errors,
y ahí añadir el error que quieras:

usuario.errors.add(:usuario_id, “El usuario introducido no es
correctos”)

JJ

Juanjo Bazán wrote:

Puedes acceder al objeto de errores de cada modelo usando el método
errors,
y ahí añadir el error que quieras:

usuario.errors.add(:usuario_id, “El usuario introducido no es
correctos”)

JJ

Juanjo, muchas gracias, es justo lo que buscaba!!

Xavier, solucionarlo por vía look & feel es meterse en líos en mi caso,
porque el flash es igual para todas las páginas (está en
application.rhtml), y esto es sólo para la página de login.

s2 y gracias!!

On Nov 7, 2007, at 10:05 AM, Fernando C. wrote:

Juanjo, muchas gracias, es justo lo que buscaba!!

Xavier, solucionarlo por vía look & feel es meterse en líos en mi
caso,
porque el flash es igual para todas las páginas (está en
application.rhtml), y esto es sólo para la página de login.

Tienes flash[:error] en el layout? Fijate que no es flash[:notice] eh?
Ten en cuenta que decir “el flash” es como decir “la session”.

– fxn

P.D.: Lo digo solo por el comentario, no sea cosa que no se entendiera
bien, al margen de que errors.add te cuadre mejor que esta perfecto.

Xavier N. wrote:

P.D.: Lo digo solo por el comentario, no sea cosa que no se entendiera
bien, al margen de que errors.add te cuadre mejor que esta perfecto.

Creo que tu propuesta sirve para sacar errores a través del flash, ¿no?
pero lo que yo quería era justo lo contrario: sacar cosas que en
realidad no son errores a través del error_messages, por eso me cuadra
bien lo de jj.

En todo caso, tu idea es interesante para si se me da el caso al
revés… gracias!!