Je construis cette application reposante en utilisant RoR, et je trouve qu'il est un peu difficile de tracer une ligne entre les choses qui devraient aller sur le modèle, et les choses qui devraient aller sur le contrôleur . A titre d'exemple, j'ai 7 méthodes sur mon contrôleur (celles qui le rendent reposant ie index(), show(), create(), update() ...), et trouvent souvent qu'il est nécessaire de ajoutez des méthodes supplémentaires, et faites-le en les créant en tant que membres.Tracer la ligne entre le modèle et le contrôleur
Ce que je voudrais accomplir ici, est de recueillir l'expérience de vous les gars sur ce qui se passe où (c.-à-dois-je tenir toutes les interactions de base de données sur le modèle, et il suffit d'appeler ces méthodes à partir du contrôleur?)
Aussi, en ajoutant des choses qui n'impliquent pas DB à mon contrôleur, c'est-à-dire que je veux faire un appel HTTP à l'écran - gratter certaines données d'un site Web.
Les appels HTTP peuvent devenir gros et salissants. Est-ce que tout ceci devrait aller à mon contrôleur, ou devrait-il aller dans une classe ou un module séparé, et être seulement inclus dans mon contrôleur pour qu'il puisse être appelé?
Si oui, quelle serait la meilleure approche pour le faire? Je suis un peu confus avec tout cela, alors ce serait bien d'avoir quelqu'un d'autre.
Merci à l'avance
J'ai trouvé que j'ai rarement besoin d'actions supplémentaires dans un contrôleur reposant. Au lieu de cela, je déplace cette action vers son propre contrôleur où il peut s'agir d'une action standard avec un nom approprié. Cependant, il a certainement fallu du temps pour changer d'état d'esprit. – wesgarrison
@wesgarrison: pourriez-vous donner un exemple d'utilisation des actions REST avec un contrôleur différent? – giorgian
@giorgian: Désolé pour la réponse tardive. Si j'ai un helpdesk avec des tickets, je pourrais vouloir ajouter une méthode dans tickets_controller appelée my_tickets (pour lister mes tickets). Au lieu de cela, je pense à cela comme une ressource distincte: les billets qui m'appartiennent; ce qui en fait un nouveau contrôleur: my_tickets_controller avec seulement une action index() (je ne montre pas/met à jour dans my_tickets, ceux-ci vont à tickets_controller). De cette façon, le contrôleur contrôle les informations sélectionnées et présentées à la vue. Exemple trivial, mais j'espère qu'il illustre le concept. Pensez aux ressources avec index/show/create/update. – wesgarrison