Aujourd'hui est le premier jour où je regarde Ruby on Rails, et maintenant je suis coincé. J'ai deux échafaudages, artist
et song
.Ruby on Rails: Soumettre un formulaire se référant à un autre contrôleur via collection_select
En songs/new.html.erb
, j'ai ces lignes:
...
<%= f.label :name %><br />
<%= f.text_field :name %>
...
<%= f.label :Artist %>
<%= collection_select(:song, :Artist, @artists, :id, :sort_name) %>
...
Dans la forme pour la création d'une nouvelle chanson, je veux une liste <select>
avec tous les artistes. L'utilisation du code ci-dessus fonctionne bien. Le formulaire est créé comme je le veux, et les artistes sont répertoriés. Cependant, lors de la présentation de la nouvelle chanson, je reçois cette erreur:
Artist(#69916999335860) expected, got String(#69917057438720)
Le code HTML généré pour les regards de sélection comme ceci:
<select id="song_Artist" name="song[Artist]">
<option value="1">Vreeswijk, Cornelis</option>
<option value="2">De lyckliga kompisarna</option>
<option value="3">Wiehe, Mikael</option>
<option value="4">Demian, Lars</option>
<option value="5">Sundström, Stefan</option>
</select>
Je suppose que le second dernier paramètre pour collection_select()
est faux, mais que devrait-il être?
Merci! Quel est ton numéro de téléphone? ;) – Johan