Necesito llamar a una acción dentro de un controlador de un método dentro de un modelo. Esto es algo que hago mucho en otro idioma (cuando trabajo con el framework MVC), sin embargo, nunca he visto esto hecho en ruby on rails. La acción no representa nada, simplemente actualiza una variable de sesión.Rails Modelo para llamar acción del controlador
Respuesta
Eso no es algo que lo haría en el patrón MVC. Su modelo solo debería contener lógica de negocios (y acceso a datos). ¿Puedes proporcionar información sobre a qué intenta llamar y por qué? Por lo general, cuando intentas hacer algo como esto, es un olor que algo no está donde se supone que debe estar.
Esto es por lo general la forma en que lo veo:
- Modelo - estos son los datos de objetos que también tienen métodos para la lógica de negocio
- Controller - estas son las acciones tomada por su aplicación, controlan los modelos y les dicen qué hacer, que controlan el fin de decirle qué emiten
- vista - esto la capa de interfaz, podría estar en cualquier formato (hTML, JS, xml) pero tiene muy poca lógica para que
Si usted está tratando de llamar a algo en un controlador de un modelo, que podría significar que hay demasiada lógica de control en su modelo.
O, tal vez, acaba de obtener un método que se puede utilizar en todas partes (es un método de ayuda, y en realidad no está relacionado con el modelo y su controlador). En este caso, debe colocarlo en su propio módulo en su directorio/lib.
Editar: Sí, las variables de sesión deben probablemente sólo sean tocados/modificada en el controlador. ¿Quizás tienes demasiada lógica de tipo control en tu modelo? Tal vez reconsidere cuán cercanamente se relaciona esa lógica con el Modelo real si es realmente parte de la acción del Controlador.
Si desea llamar a la acción del controlador (o cahange sesión porque session
se define como @session
variable y que es privado) a partir del modelo que debe pasar a instancia del controlador como un parámetro para el método de modelo por lo que si necesita editar session
método puede ser similar a
def change_session(controller)
@ses = controller.send :session
//some actions
end
en el controlador
def something
s = Session.new
s.change_session(self)
...
end
- 1. Llamar a una acción del controlador con link_to
- 2. .NET MVC - Llamar a un controlador Acción desde otra acción del controlador
- 3. Llamar javascript desde la acción del controlador MVC
- 4. Ruby on Rails - Variable del controlador de acceso del modelo
- 5. Uso de jQuery para llamar a una acción de controlador
- 6. Anula una acción del controlador de Rails Engine
- 7. Render acción del controlador desde otro controlador
- 8. ¿Cómo llamar a la acción del controlador en otro controlador en cakephp?
- 9. Rails Acción Almacenamiento en caché para registros específicos del usuario
- 10. Uso de Ruby on Rails link_to para vincular a la acción del controlador
- 11. Rails rutas acción de índice directo para mostrar acción
- 12. Controlador de vista de modelo: ¿El controlador o el modelo recuperan datos del servidor?
- 13. nombre del modelo al nombre del controlador
- 14. backgroundworker bloqueando la acción del controlador MVC
- 15. Tortphp cron job para llamar a la acción de un controlador
- 16. Ember.js Acción del enrutador al controlador
- 17. Permitir múltiples roles para acceder a la acción del controlador
- 18. Agregar una acción a un controlador existente (Ruby on Rails)
- 19. Llamar a un método en un modelo de controlador
- 20. Zend Framework - Cómo llamar a la redirección del controlador() desde dentro de un helper de acción
- 21. Rieles: nombre de la acción del controlador en la cadena
- 22. ¿Dónde renderizar el controlador de comentarios en Rails en el caso de las validaciones del modelo?
- 23. Usar Html.ActionLink para llamar a la acción en un controlador diferente
- 24. Ruby on Rails convención plural (controlador) y singular (modelo) - explicación
- 25. Rails3 button_to está llamando acción POST, intentando llamar acción PUT
- 26. pase el modelo de una acción a otra acción en el mismo controlador
- 27. El uso de un aglutinante de modelo personalizado para un argumento de una acción de controlador
- 28. Ruby on Rails: obtenga el nombre del controlador y la acción en función de una ruta
- 29. Sentencias condicionales de Rails ('if') basadas en la acción del controlador
- 30. ASP.NET MVC: ¿acción actual del código del controlador?
el problema es que tengo un plugin para la autenticación y tengo que llamar a un método cuando un usuario inicia sesión en medio de una función que me recuerde dentro del plug-in (que byp evalúa todas las acciones del controlador de inicio de sesión; si este no fuera el caso, obviamente cambiaría los datos de la sesión aquí). La necesidad de llamar a un método en el controlador está relacionada con el seguimiento analítico y no es realmente nada que el usuario vea. – scott