2010-04-01 12 views
0

[Rails] Où mettre ce code?Où mettre ce code?

J'ai un utilisateur1 et quand un autre utilisateur enregistré2 voit le profil de user1, a quelques boutons là-dessus: ['ajouter comme ami', 'donne moi ton numéro', 'donne moi ton email', 'demande-lui ', 'voir les photos']. Les 1,2,3,4 sont POST, avec AJAX. Maintenant, je dois faire un nouveau contrôleur nommé 'ProfileActionsController' ou je devrais mettre ce code dans 'UsersController'?

ou peut-être une autre posiibilité? merci;)

Répondre

1

Vous pouvez faire les deux. Pour éviter que UsersController ne devienne trop volumineux, vous devez le mettre en place pour le nouveau contrôleur, ce qui aidera à la maintenance.

+0

merci ive vu quelqu'un a plus de dossiers dans le dossier de l'application. normal est la vue du contrôleur de modèles .. mais ils ont le présentateur aussi et un autre je ne me souviens pas .. vous savez quelque chose à ce sujet? –

0

S'il s'agit d'une action effectuée sur un utilisateur (c'est-à-dire qui modifie en quelque sorte un utilisateur via son modèle), vous devriez idéalement placer ces actions dans le controller_utilisateurs.

1

Vous devrez probablement stocker certaines de ces relations dans différentes tables de base de données. Par exemple, Userhas_many :friends. Cette conception encourage un modèle Friend. Ce qui conduit à un FriendsController et urls comme POST /user/1/friend pour créer une amitié entre l'utilisateur actuel (user2) et l'utilisateur 1.

Ceux appartiennent à un contrôleur distinct.

Si vous avez besoin d'autres actions Ajax sur un utilisateur, les définissant dans UsersController est le bon endroit. "Donnez-moi votre numéro", "Donnez-moi votre email" et "Voir les photos", selon les besoins, pourraient être des sections cachées du html, ou de simples requêtes Ajax GET au UserController pour rendre les partiels ou JSON.

Ceux-ci peuvent rester sur le UserController

CONSEIL GENERAL: Toujours essayer de rester dans les 7 actions pour chaque contrôleur (nouveau, créer, modifier, mettre à jour, index, spectacle, détruire) - lorsque vous sentez que vous avez besoin de définir votre propre action, pensez à laquelle des 7 il est le plus proche. Peut-il être combiné avec élégance? Si non, alors agit-il sur un concept séparé?

+0

J'ai des contrôleurs avec plus de 7 actions, comment puis-je les faire pour bien travailler avec plus, le code devient un peu confus ... J'ai des gros modèles et des contrôleurs minces. les modèles sont vraiment très gros ..: s J'ai entendu parler de quelques autres dossiers dans le dossier de l'application, comme présentateur ou quelque chose comme ça, mais je ne me souviens pas bien .. –