2010-12-15 28 views
1

Je suis intéressé par la construction d'un assistant pour mon application web que les utilisateurs utilisent quand ils connexion en qui a 3 étapes simples:Rails - Construction d'un assistant. Par où commencer, où stocker

  • Ajouter photo de profil
  • Info Profil
  • Trouver des amis

Ce genre de chose. alors ma question est comment je fais ça avec Rails?

Le GettingStarted aura essentiellement les 3 vues ci-dessus. Avec les boutons Suivant/Précédent/Sauter. Où dois-je soumettre? Comment puis-je suivre la vue actuelle et décider comment afficher la vue suivante? Je réalise que c'est une question plus large et j'apprécie toute réflexion de haut niveau que vous pouvez partager sur la façon de gérer intelligemment cela.

Merci!

Répondre

2

Certaines considérations doivent être prises avant de décider finalement d'une solution. Par exemple, cet assistant doit-il être terminé avant de passer à l'application réelle, ou est-ce quelque chose qui peut être entièrement contourné par (par exemple) la connexion depuis un autre ordinateur?

En supposant que ce soit OK pour le contourner, je créerais un espace de noms (par exemple, getting_started) avec trois ressources imbriquées: photo, profil et amis. Il n'est vraiment pas nécessaire de savoir à quelle étape se trouve un utilisateur, car vous pouvez simplement passer d'une étape à l'autre après la soumission, et rajouter et ignorer des boutons si nécessaire. Cependant, le point le plus important est de nommer cet assistant et d'éviter de polluer les contrôleurs "normaux" pour ces ressources avec des actions spécifiques à l'assistant. De cette façon, les choses restent REST-ful et organisées.

Routes pourraient ressembler à:

namespace :getting_started do 
    resource :photo, :only => [:edit, :update] 
    resource :profile, :only => [:edit, :update] 
    resources :friends, :only => [:index, :create] 
end 
+0

@ Brian, il peut être quelque chose qui peut être contournée – AnApprentice

+0

Je pense que je suis en train de la partie des itinéraires, mais quid du contrôleur et des vues? – AnApprentice

+0

Hmm les vues seront différentes. Exemple, La vue pour le téléchargement de votre photo de profil est différente de la mise en route par rapport à la normale dans le site par l'édition de profil? – AnApprentice

1

Jetez un oeil à ce Railscasts. J'imagine que ce sera un bon point de départ pour vous.

http://railscasts.com/episodes/217-multistep-forms

+0

C'est vraiment bon.Le problème est que mon assistant de mise en route n'est pas associé à un modèle de la même manière que le rail doit être commandé. Ma mise en route concerne plusieurs produits .. Alors, où puis-je gérer cela dans le modèle? – AnApprentice

+0

Je pense que cette approche est bonne lorsque le formulaire est réellement à plusieurs étapes, mais cet assistant semble pouvoir être abandonné à n'importe quelle étape et toutes les informations entrées précédemment doivent être conservées. –