Mi caso de uso básico es hacer algo de procesamiento, establecer flash[:notice]
, y luego redirigir a una página nueva. Por lo que puedo decir, los redireccionamientos restablecen la etiqueta flash (corrígeme si me equivoco). ¿Hay alguna manera de ganar persistencia? Usar sesiones no es una opción, y he pirateado el problema usando cookies, pero creo que debe haber una manera mejor.obtener el hash flash para persistir a través de redirecciones
Respuesta
El hash flash persiste para exactamente un redireccionamiento o renderizado. Entonces deberías estar bien con la configuración predeterminada.
Si necesita mantener el hash de flash para otra solicitud/redirección, puede llamar a flash.keep.
flash.keep # keep the entire flash hash around for an extra request.
flash.keep(:notice) # keep just flash[:notice] for an extra request.
¿Hay alguna razón posible por la que esto no siempre sea cierto (como sesiones inhabilitadas)? Ciertamente no es el caso en mis usos (flash [: notice] debe mostrarse como parte del diseño estándar, pero no es visible a menos que se establezca antes que un renderizado en lugar de un redireccionamiento). –
¿Qué ocurre cuando se hace referencia explícita a flash [: notice] en una vista? – EmFi
Después de una redirección? Nada. Si no hay una redirección involucrada, puedo ver la misma cadena asignada. –
Algo a tener en cuenta por lo menos en los carriles v3.2.1 es que el flash persistirá a través de una redirección si no es que se hace referencia en absoluto a través de al menos 1 redirección y cargar el mismo punto de vista después. Se trata de un pseudo código de mi experiencia reciente:
def some_action
(code that may set a flag to redirect 1 time)
redirect_to action_path if(redirect_flag)
....
end
La ejecución de este daría lugar a la rápida [: mensaje] estar presente independientemente de la redirección.
def some_action
logger.debug("Flash[:message] #{flash[:message]}")
(code that may set a flag to redirect 1 time)
redirect_to action_path if(redirect_flag)
....
end
durante la depuración con el registrador de referencia rápida [] que sólo aparecen cuando la redirección no sucedió. Podría ver que esto es problemático si agregaste una referencia al flash antes de redirigir y lo perdiste en la línea sin motivo aparente.
Ver rubí documentos aquí (Instance protected method: Use at the bottom)
¡Ah, gracias! Agregué un poco de registro que registraba el flash en el nivel de solicitud, y estaba confundido en cuanto a por qué el flash ya no se conservaba a través de redirecciones múltiples. Parece que si quieres hacer algo como esto, puedes leer el flash a través de 'request.session ['flash']' (al menos en Rails 4) y no pasará por el acceso normal, que es lo que normalmente marca el flash como referenciado. – Ibrahim
- 1. Persistir objetos C# a través de las devoluciones
- 2. Activar el botón del flash a través de javascript
- 3. Alternativa al "encabezado" para redirecciones en PHP
- 4. Transmisión de mensajes de error a través de flash
- 5. ¿El productor trabaja sistemáticamente con hash para los consumidores a través de una cola de mensajes?
- 6. Sobre stdout/stderr redirecciones
- 7. ¿Cómo imprimir un libra/hash a través del preprocesador C?
- 8. Iterar a través de una tabla hash de objetos
- 9. Enviar un hash de ubicación a través de un referente
- 10. Ruby - obtener el valor de hash de
- 11. Persistir si se hace clic en la casilla de verificación a través de la postback
- 12. ¿Cómo iterar a través de hash (de Hashes) en Perl?
- 13. Hash String a través de SHA-256 en Java
- 14. Perl Eliminar clave base a través de Hash Referencia
- 15. mySQL: obtener valor hash para cada fila?
- 16. Cambiar URL a través de JavaScript (sin etiqueta hash)
- 17. Cómo puedo obtener Hudson para actualizar a través de Proxy
- 18. Obtener el recuento de niños a través de HQL
- 19. 301 redirecciones en Grails
- 20. ¿Cómo obtener el nombre de dominio a través de JavaScript?
- 21. obtener el estado de ToggleButton a través del controlador
- 22. saber cuándo llamar persistir
- 23. persistir nueva entidad onFlush
- 24. entidad eliminados pasó a persistir excepción
- 25. Obtener java y flash para hablar entre ellos
- 26. Obtener el contenido del archivo a través de PHP cURL
- 27. ¿El JPA/Hibernate ahorrar aún cuando no llamar a persistir
- 28. Usuario - mod de reescritura y php redirecciones
- 29. Mejores prácticas para usar y persistir enumeraciones
- 30. org.hibernate.PersistentObjectException: entidad separada pasada para persistir
sí parpadea [: aviso] aparecen durante un render y no una redirección? ¿Estás seguro de que se está cargando el diseño estándar? – EmFi