2008-10-06 7 views
8

Je suis en train d'apprendre Ruby on Rails. J'ai lu quelques livres, j'ai regardé beaucoup de Railscasts, j'ai regardé quelques exemples.Conception de sites Web avec Ruby on Rails

Cependant, lorsque je travaillais sur mon premier projet sérieux avec Rails, je me suis accroché à la façon de mettre en œuvre correctement certaines fonctionnalités du site Web de base que la plupart des tutoriels que j'ai vu manquent.

Par exemple: menus de navigation. Beaucoup de tutoriels sur la façon de faire un statique, mais qu'en est-il dynamique? Si je veux créer une barre de navigation différente d'une page à l'autre, comment pourrais-je procéder?

Je pense que la meilleure façon d'apprendre de telles choses est de voir un exemple de code. Y a-t-il de bons sites open source dans RoR? Un exemple de code que je peux consulter?

Je suppose que ma question résulte vraiment de l'utilisation de MVC. L'idée de base est vraiment basique, et je le comprends. Mais il semble que la plupart des applications ont des parties complètement séparées les unes des autres ... et si je veux, disons, combiner des données de deux modèles pour les afficher sur la même page? Pour prendre l'exemple que j'ai posé, si j'ai un NavModel et un PageModel, mon PageController peut-il accéder aux deux modèles? Je suppose que j'ai supposé qu'un PageController peut seulement accéder à un PageModel, et aucun autre. Tous les exemples que j'ai vus semblent fonctionner de cette façon ... est-ce une hypothèse erronée? Ou est-ce que je manque totalement le point, et est-ce que c'est «mal fait?

+2

Il n'y a pas un à un entre les modèles et les contrôleurs . Rien de mal à écrire un contrôleur qui utilise des données provenant de nombreux modèles différents. Le modèle est vos données. Les contrôleurs sont vos commandes. Les vues sont vos écrans. – Ken

Répondre

3

Quels livres avez-vous lus? Je pense qu'une meilleure compréhension de MVC et Rails vous aiderait plus à long terme que l'exemple de code, que vous pourriez être tenté de copier sans comprendre. Le problème que vous décrivez n'est pas vraiment différent de la recherche et de l'affichage de tout type de données, que vous avez sûrement vu couvertes dans des extraits de blogs, etc. (l'utilisation de partiels et/ou de mises en page est peut-être la seule différence). Si vous ne les avez pas déjà lus, vous devriez essayer Agile Web Development with Rails et The Rails Way.

Il existe également severalbooks qui vous guide dans la création d'un exemple d'application incluant des commentaires pour vous assurer de bien comprendre ce que vous faites.

+0

J'ai lu The Rails Way, "Simply Rails 2" ...Je suis en train d'éditer ma question pour inclure plus de détails. –

+0

Agine Web Development avec Rails est un bon livre. – Ken

1

Votre contrôleur peut accéder à n'importe lequel de vos modèles, donc si PageController doit accéder à votre NavModel, ça va. Je pense généralement que le contrôleur de Nav ou l'assistant contiendrait les méthodes nécessaires pour préparer la vue de navigation, mais sans connaître les détails de votre projet je ne peux pas dire avec certitude - si vous pensez que cela fait partie de la logique de la page.

Cette question "What goes where" pourrait aussi vous intéresser.