2016-05-25 2 views
1

Quels sont les changements à apporter aux contrôleurs et à la collection pour accepter plusieurs valeurs d'une sélection de collection.Quels changements doivent être faits dans le contrôleur et dans la collection, sélectionnez pour prendre plusieurs valeurs dans les rails?

L'association entre les modèles est: -

product has many categories through product_categories 
categories has many products through product_categories 

product_categories est la table de jointure.

Voici ma collection select, où j'utilise choisi pour sélectionner plusieurs valeurs.

<%= ps.collection_select :product_id, Product.all, :id, :product_name, {prompt: "Select Product"}, {class: "form-control chosen-select",:multiple => true} 

Controller params

params[:spare].permit(:id, :name, :desc,:code,:manufacturer_id, :product_ids,{:attachments_attributes => [:id, :attachment, :remote_attachment_url, :_destroy]}) 

a également essayé avec des attributs imbriqués

params[:spare].permit(:id, :name, :desc,:code,:manufacturer_id,:product_ids,{manufacturer_service_centers_attributes: [:id, :service_center_id, :manufacturer_id, :_destroy]},{:attachments_attributes => [:id, :attachment, :remote_attachment_url, :_destroy]}) 

Quels changements dois-je faire ici pour elle de prendre product_ids? .

+0

se référer simplement http://stackoverflow.com/questions/ 23253449/ruby-on-rails-4-select-multiple –

+0

Je l'ai vérifié ... mais je ne trouve pas la partie contrôleur là et les données sont peuplées statiquement, je voulais savoir comment passer le hachage ou tableau dynamiquement dans collection select. –

+0

@PallaviHegde pouvez-vous poster votre valeur de hachage 'params' de la console et également ajouter la forme entière de votre modèle de vue. – dp7

Répondre

0

J'ai été en mesure d'appliquer le multi-select choisi, Ce sont les étapes que j'ai suivies.

avec choisi sélectionnez:

<%= f.select :product_ids, Product.all.collect { |u| [u.product_name_code, u.id] }, {}, {:multiple => true, :class => "chosen-select"} %> 

Contrôleur

params[:spare].permit(:id,:product_ids => []) 

Hope it helps :)

Merci :)