2010-02-26 5 views
0

J'ai une forme complexe dans Ruby on Rails 2.3.5, voici la structure pour elle: Artiste - Nom - Albums -Songs - PhotosComment aborder forme multi-modèle dans des rails

Chaque artiste peut albums et plusieurs photos. Pour chaque album, il y a plusieurs chansons. Je veux créer un processus en 3 étapes. - Créer Artiste - Créer un album (aura l'option de créer plusieurs chansons) - Créer Photos

Je veux le mettre dans une manière de type assistant. Ma question est assez générale: comment allez-vous (organisationnellement) créer des formulaires pour les modèles et les contrôleurs pour un tel projet?

Actuellement, j'ai un modèle appelé Artist, un modèle appelé Albums et un modèle appelé Photos. Les artistes ont beaucoup d'albums et de photos. Sous quelle vue placerais-je le formulaire?

En ce moment, la façon dont il est à la recherche je vais à: artistes/nouveau - créer l'artiste, passer en quelque sorte id artiste à l'album, mouvement des albums comme des albums/nouveau, gardez le passage que id artiste aux photos, photos/nouveau pour créer des photos et ensuite terminer -> retour aux artistes/spectacle.

Idéalement, j'aimerais avoir quelque chose comme artists/new/1 pour créer les artistes artists/new/2 pour créer les albums et artists/new/3 pour créer les photos.

Comment est-ce que je ferais cela? En dehors du routage des pages là où je les veux, est-ce la bonne façon d'organiser les choses?

Merci!

Répondre

1

Vous avez probablement besoin de nested routes. Il devrait automatiquement gérer les relations.

Vous aurez des liens comme artists/1/albums/new, artists/1/albums/5/songs/new etc

Ainsi, votre scénario pourrait ressembler à ceci:

  1. artsists/new
  2. Enregistrer l'artiste sur le poteau.
  3. Redirect (ou rendre forme ajax) au nouvel article (vous pouvez utiliser des rails générés aide) redirect_to new_artist_article_url @artist_just_created_and_saved
  4. Enregistrer artiste et même pour les chansons etc
+0

cela semble prometteur, mais je ne suis pas clair sur la façon de élabore-le quand je crée un artiste - je n'aurai pas encore son identifiant. Qu'est ce que je ferais? –

+0

merci beaucoup! –

+0

Mis à jour répondre un peu avec les détails. –

Questions connexes