2009-02-24 12 views
2

La tentative d'utilisation du formulaire de modèle imbriqué dans le nouveau profil de lancement de rails. J'ai ceci, mais il rend seulement des champs de forme pour chaque objet photo associé existant.Création d'un formulaire pour un nouvel objet associé à l'aide de l'imbrication du modèle Rails 2.3

(Compte tenu d'un générateur de formulaire f qui a été créé pour mon modèle objet parent)

%h3 Photos 

- f.fields_for :photos do |photo_form| 
    %p 
    = photo_form.label :caption 
    = photo_form.text_field :caption 

    %p 
    = photo_form.label :image_file 
    = photo_form.file_field :image_file 

Comment puis-je utiliser ces formes imbriquées fonction pour créer une section de la forme d'un nouvel objet photo ainsi que le montage les photos existantes?

Répondre

3

Les objets associés doivent simplement exister en mémoire pour être rendus dans le formulaire, ils n'ont pas besoin d'être sauvegardés. Vous pouvez donc les construire avant de rendre le formulaire!

Par exemple, dans votre contrôleur, vous pouvez le faire:

def new 
    @object = MyObject.new 
    3.times { @object.build_associated_object } 
end 

Maintenant, quand votre formulaire rend, il dispose de 3 objets à afficher des formulaires pour! C'est le moyen le plus facile. Bien sûr, vous pouvez également ajouter des éléments de manière dynamique avec Javascript.

Questions connexes