2010-04-13 4 views
0

J'ai décidé de rouvrir ceci parce que je veux ici plus de vues de personnes sur ceci. Je ne cherche pas le code complet, mais plutôt votre approche.Rails - comment voulez-vous coder une action/vue d'index comme le profil d'utilisateur dans le débordement de pile

Le profil utilisateur de Stackoverflows (index utilisateur) est assez complexe, il comporte environ 7 onglets, chacun affichant les données de manière différente. C'est presque comme si elles étaient des vues mini chacune utilisant une partie différente pour les données tabulées. Je suis encore relativement nouveau sur les rails et je sais comment utiliser les partiels, mais je ne vois pas comment ils seul peuvent résoudre ce problème. Je me demande aussi comment vous évitez d'utiliser une énorme instruction if else dans la vue d'index principal pour détecter l'onglet/mini-vue à afficher. Pour stackoverflow ce serait environ 7 déclarations de cas.

END EDIT.

la question originale suivante.

Sur stackoverflow dans la zone de profil utilisateur, il existe de nombreux onglets qui affichent tous des informations différentes, telles que des questions et des graphiques. C'est la même vue et je me demande pourquoi il est préférable de le faire dans des rails tout en gardant le contrôleur mince et logique dans la vue au minimum. Mais comment puis-je traiter cela dans la vue d'index sans un chargement de déclarations if et else. Et si les questions et les réponses sont présentées différemment, quelle est la meilleure façon d'y parvenir.

Répondre

2

Créez deux partiels: _questions.html.erb et _answers.html.erb. Appelez les partiels basés sur le tab_selected.

index.html.erb

<%= render :partial => (params[:tab_selected] == "answers") ? "answers" : 
         "questions") %>