2010-02-23 5 views
1

i ont un modèle d'événement has_and_belongs_to_many artistesids sous forme

class Event < ActiveRecord::Base 
has_and_belongs_to_many :humans, :foreign_key => 'event_id', :association_foreign_key => 'human_id' 
end 

sous la forme pour l'événement l'insertion, je peux mettre un champ caché pour les artistes ids:

<%= event_form.text_field :artist_ids %> 

Si j'inséré manuellement la valeur "8,9,10" (ids associés à 2 rangées d'humains) et je soumets le formulaire, dans le contrôleur j'obtiens seulement 8.

Pourquoi?

Comment puis-je faire?

+0

Il semble que votre Le modèle d'événement "event" peut être polymorphe. Est-ce le cas? –

Répondre

2

Lorsque vous attribuez la chaîne "8,9,10"-artist_ids il est converti en une valeur entière:

>> a.artist_ids = '1,2,3' 
=> "1,2,3" 
>> a.artist_ids 
=> [1] 

Vous devez le diviser avant de passer au modèle:

>> a.artist_ids = '1,2,3'.split(',') 
=> ["1", "2", "3"] 
>> a.artist_ids 
=> [1, 2, 3] 
0

Dans votre "nouvelle" action, comment trouvez-vous les artist_ids? Vous devrez utiliser la même requête dans l'action à laquelle le formulaire est soumis. (Donc, si de nouvelles soumissions à créer, vous devez trouver les artistes dans l'action de création).