J'ai un modèle de photos et un modèle de galerie. Le modèle de galerie (j'ai utilisé l'échafaudage astucieux) a juste un champ, un nom de galerie. Dans mon formulaire d'édition de photo, je veux lier chaque photo à une galerie, par exemple. Je crée 2 galeries séparées en 2009 et 2010, je veux avoir une liste déroulante sur chaque page d'édition de photos avec la liste des galeries, donc chaque photo peut être placée dans une galerie. J'ai utilisé this et this comme points de départ, mais je suis bloqué et je n'arrive pas à faire apparaître les galeries dans mon formulaire photo.fields_for imbriqué
class Gallery < ActiveRecord::Base
has_many :photos
attr_accessible :name
end
class Photo < ActiveRecord::Base
belongs_to :gallery
accepts_nested_attributes_for :gallery, :allow_destroy => true
vues/photos/_form.html.erb
<% form_for @photo, :html => { :multipart => true } do |photo_form| %>
<p>
<%= photo_form.label :title %><br />
<%= photo_form.text_field :title %>
</p>
<p>
<% photo_form.fields_for :gallery do |gal_form| %>
<%= gal_form.label :name %>
<%= gal_form.collection_select :gallery_id, Gallery.all, :id, :name %>
</p>
<% end %>
<p>
<%= submit_tag %>
</p>
<% end %>
Actuellement il n'y a pas de liste déroulante sur le formulaire de photo la page, bien que je ne reçois pas d'erreurs et il n'y a aucune mention soit dans la source de la page. J'apprécierais toute aide ou pour être pointé dans la bonne direction ...
avec que j'obtiens une erreur .. méthode non définie 'gallery_id ' –
pouvez-vous montrer ajouter votre schéma de base de données? Parce que si la photo doit être dans une galerie, alors vos modèles semblent corrects. Mais vous devriez avoir une colonne gallery_id dans votre tableau de photos. Aussi, juste pour confirmer, vous avez le '@photo = Photo.find (id de la photo)'? –
Je n'avais pas de colonne galleries_id mais j'en ai ajouté une bien que cela ne fasse aucune différence, et la méthode show pour les photos est correcte, @photo = Photo.find (params [: id]) –