2010-07-25 4 views
1

J'ai des modèles de catégorie et un produit. Je veux que chaque produit appartienne à une catégorie. Comment aurais-je une liste déroulante afin que vous puissiez sélectionner une catégorie à partir des pages de produits?Liste déroulante dans Rails attachés à un modèle différent

J'ai tout appris à travailler avec ceci:

<%= collection_select(:category, :id, @categories, :id, :title, options ={:prompt => "-Select a category"}, :class =>"category") %> 

et en utilisant

@product.category_id = params[:category][:id] 

dans ma mise à jour/créer des méthodes de régulation

mais il se sent maladroit et il n'a pas " lire "la valeur de la @product lors de l'édition et je n'ai aucune idée de comment faire pour que cela le fasse. Est-ce que je fais quelque chose de mal?

Répondre

1

Les deux premiers paramètres de collection_select doivent être le modèle que vous essayez de mettre à jour et son attribut. Donc, faire quelque chose comme ceci:

<%= collection_select(:product, :category_id, @categories, :id, :title, options ={:prompt => "-Select a category"}, :class =>"category") %> 

Cela mettra à jour @ product.category_id (de sorte que vous ne devez pas le faire manuellement) et il lira également la valeur correctement sélectionnée précédemment.

Questions connexes