2010-12-01 5 views
2

J'ai 2 modèles, sessions et présentateurs avec une relation HABTM entre eux. Sur la page de création de session, je voudrais fournir une liste déroulante à partir de laquelle l'utilisateur peut sélectionner plusieurs présentateurs pour la session. Mon code dans le _form.html.erb (pour les sessions) estRails 3 collection_select méthode auxiliaire pour une relation HABTM

<% = f.label: présentateurs%>
<% = collection_select (: séance,: présentateurs, Presenter.all,: id ,: nom, {: include_blank => ''}, {: multiple => true})%>

Cependant le frapper créer je reçois le message d'erreur suivant sur mon navigateur: Présentateur (# 2176431740) prévu, got String (# 2151988680)

Le journal des requêtes affiche "présentateurs "=> [" 1 "," 2 "]

Je suppose qu'un tableau de chaînes contenant les identifiants des présentateurs sélectionnés est renvoyé à la place des objets du présentateur. Je ne peux pas comprendre comment faire fonctionner ça.

(PS- J'ai créé la table presenters_sessions et has_and_belongs_to_many spécifié dans les deux modèles)

Merci à l'avance.

Répondre

3

Vous ne l'avez pas compris, cela fonctionnera si vous passez: presenter_ids comme second paramètre plutôt que: présentateurs. Au final, vous ne faites que mapper les identifiants sélectionnés à la collection d'identifiants du modèle. L'erreur indique "Vous avez essayé d'attribuer une chaîne à une collection de présentateurs".

+0

Ok merci. J'ai fait une autre solution de contournement pour cela. Nous avons changé l'affichage de l'interface utilisateur à la fin –

+1

Je souhaite que je pourrais mettre en valeur ceci plus. :) – RyanJM

Questions connexes