2010-12-16 199 views
0

J'ai un modèle qui représente un achatRails 3 conception pour un has_many: par


class Purchase < ActiveRecord::Base 
    belongs_to :user 
    belongs_to :item 

Donc, fondamentalement, chaque achat appartient à la fois un utilisateur et un élément qui est acheté. Voici mon problème, je pouvais nid acheter sur le point, de sorte que lorsque l'utilisateur achète, il ira à:

/article/1/achat/nouvelle

Cela fonctionnerait très bien, mais je aime aussi la utilisateur d'être en mesure d'aller à/user/1/achats/1/modifier etc. Fondamentalement achat devrait être imbriqué à la fois sur l'utilisateur et l'élément que vous ne pouvez pas.

À l'heure actuelle, j'ajoute fondamentalement plus d'actions reposantes à l'utilisateur et à l'élément, comme/item/1/purchase et/user/1/purchase/etc, mais cela conduit à augmenter considérablement les contrôleurs. Est-ce le seul moyen ou pourriez-vous imbriquer une ressource à 2 ressources?

Répondre

1

Bien sûr, ils peuvent nicher dans les deux. Rails ne vous empêchera pas de faire les routes que vous voulez.

Cependant, je recommande d'imbriquer uniquement certaines actions sous certaines ressources parentes. Par exemple, new et create peuvent être placés sous des éléments, puisque cela est logique lorsque vous atteignez l'achat de l'article, mais show et similaires pourraient avoir plus de sens sous l'utilisateur, si vraiment il doit être imbriqué sous quoi que ce soit .