Je dois appeler une action à l'intérieur d'un contrôleur à partir d'une méthode à l'intérieur d'un modèle. C'est quelque chose que je fais beaucoup dans d'autres langues (en travaillant avec le framework MVC), cependant, je n'ai jamais vu ça en ruby on rails. L'action ne restitue rien, elle met simplement à jour une variable de session.Rails Modèle à appeler Action du contrôleur
Répondre
Ce n'est pas vraiment quelque chose que vous feriez normalement dans le modèle MVC. Votre modèle ne devrait vraiment héberger que la logique métier (et l'accès aux données). Pouvez-vous fournir des informations sur ce que vous essayez d'appeler et pourquoi? Habituellement, quand vous essayez de faire quelque chose comme ça, c'est une odeur que quelque chose n'est pas ce qu'il est censé être.
C'est généralement la façon dont je le vois:
- Model - ces données sont des objets qui possèdent également des méthodes pour la logique métier
- Controller - ce sont les actions prises par votre application, ils contrôlent les modèles et leur dire quoi faire, ils contrôlent en vue de lui dire quoi
- émettre Voir - ce la couche d'interface, il pourrait être dans tout format (html, js, xml), mais il a très peu de logique pour il
Si vous essayez d'appeler quelque chose dans un contrôleur à partir d'un modèle, cela peut vouloir dire qu'il ya trop de contrôle de logique dans votre modèle. Ou, peut-être, vous avez juste une méthode qui pourrait être utilisée partout (c'est une méthode d'aide, et elle n'est en fait pas reliée au modèle et à votre contrôleur). Dans ce cas, vous devriez le mettre dans son propre module dans votre répertoire/lib.
Editer: Oui, les variables de session ne devraient probablement être touchées/mises à jour que dans le contrôleur. Peut-être avez-vous trop de logique de type contrôle dans votre modèle? Peut-être repenser à quel point cette logique est liée au Modèle réel si elle fait réellement partie de l'action du Contrôleur.
Si vous voulez appeler l'action du contrôleur (ou d'une session cahange parce session
est défini comme @session
variable et elle est privée) du modèle que vous devez passer par exemple du contrôleur en tant que param à la méthode du modèle, donc si vous avez besoin modifier session
méthode peut être similaire à
def change_session(controller)
@ses = controller.send :session
//some actions
end
dans le contrôleur
def something
s = Session.new
s.change_session(self)
...
end
- 1. Rails form_for modèle différent contrôleur
- 2. Action du contrôleur d'appel du fichier ctp
- 3. retour du contrôleur rails
- 4. Utilisation de jQuery pour appeler une action de contrôleur
- 5. Comment puis-je appeler une action du contrôleur à partir d'une tâche rake?
- 6. Puis-je appeler un service Web à partir d'une action du contrôleur dans ASP.Net MVC?
- 7. rails comment appeler un autre contrôleur dans link_to_remote
- 8. Contrôleurs ZEND - Comment appeler une action d'un contrôleur différent
- 9. Appeler une autre action du contrôleur après l'action du régulateur de courant a terminé son exécution
- 10. nom du modèle au nom du contrôleur
- 11. rails utilisateur-ip à partir du modèle?
- 12. Retour du contrôleur de rails
- 13. Ruby on Rails - Variable de contrôleur d'accès du modèle
- 14. Rails 3 Ajouter une action GET au contrôleur RESTful
- 15. Rails Contrôleur RESTful et rendu après action personnalisée
- 16. Comment retourner du HTML directement à partir d'un contrôleur Rails?
- 17. Variable accessible à n'importe quel élément du contrôleur dans Rails
- 18. Appeler une méthode à l'intérieur du modèle
- 19. Appel d'une action AsyncController à partir d'une autre action du contrôleur?
- 20. Rails contrôleur quand aucun modèle ActiveRecord?
- 21. Rails: créer un modèle dans la nouvelle action
- 22. Asp.Net Mvc UnitTesting Une action du contrôleur
- 23. Spécification du modèle dans le contrôleur?
- 24. Comportement d'une action du contrôleur à la réception d'un dto
- 25. Obtention du contrôleur actuel et action envoyée à l'itinéraire
- 26. Passage d'un objet à un contrôleur Action
- 27. comportement différent pour la même action de contrôleur dans Rails
- 28. Comment trouver le chemin absolu d'une action du contrôleur?
- 29. Rails - nom de l'action du contrôleur à la chaîne
- 30. Comment appeler un service Web à partir du contrôleur?
le problème est que j'ai un plug-in pour l'authentification et je dois appeler une méthode lorsqu'un utilisateur se connecte via un remember me fonction à l'intérieur du plug-in (qui byp évalue toutes les actions du contrôleur de connexion - si ce n'était pas le cas, je changerais évidemment les données de session ici). La nécessité d'appeler une méthode dans le contrôleur est liée au suivi analytique et pas vraiment à ce que l'utilisateur voit. – scott