2010-01-02 4 views
0

J'ai une table "catégorie" qui contient différents types de "produit", donc je crée cela dans le category.rb:(Rails) Comment afficher les enregistrements enfants (un-à-plusieurs) dans la forme de leurs parents?

class Category < ActiveRecord::Base 
    has_many :products 
end 

Et ceci product.rb:

class Product < ActiveRecord::Base 
    belongs_to :categories 
end 

I je voudrais savoir comment puis-je obtenir les catégories: à partir du produit dans les produits/new.html.erb

Répondre

3

EDIT: Code simplifié

Je vous recommande u se Formtastic qui le fera automatically for you. Si vous voulez le faire rails sans Formtastic, solution est:

En supposant que vous utilisez partiel pour new.html.erb et edit.html.erb, le code entrera en _form.html.erb

<%= f.label :category_id %><br /> 
<%= f.collection_select :category_id, Category.all, :id, :name%> 
+0

Vous devez vous assurer que le modèle 'Product' champ' a category_id' et table 'products' a la colonne' category_id' ainsi. Vous pouvez exécuter la commande suivante dans un nouveau projet pour voir le code. 'script/generate échafaudage Nom du produit: string category_id: integer' –

+0

Je vois, j'ai ajouté le productId là-dedans, ça marche, merci. Mais il montre le réel category_id au lieu du nom de catégorie. Voici mon code: <% semantic_form_for @category do | f | %> <% = f.input: category,: include_blank => false%> <% = f.buttons%> <% end %> – DNB5brims

+0

un suivi de plus, après que j'utilise ceci, les validate deviennent fous, j'ai plusieurs validate dans mon produit.rb, après avoir entré des données, il ne me traitera pas du tout. Qu'est-ce qui se passe? J'utilise le script ruby ​​/ générer la migration add_category_id_to_product category_id: integer pour ajouter le category_id. – DNB5brims

Questions connexes