2010-10-30 46 views
2

produit, catégorie est deux modèles sur rails3 la relation entre eux sont suivants:Est-ce que le support de la commande d'échafaudage des rails génère la propriété belongs_to ou many to many info de migration de la table du milieu?

produit Catégories de has_and_belongs_to_many

catégorie produits has_and_belongs_to_many

je peux utiliser échafaudage générer la migration pour cette deux utilisation modle

rails g scaffold product name:string 
rails g scaffold category name:string 

mais comment puis-je générer les informations de migration de la table du milieu vers plusieurs modèles, ou je dois l'écrire manuellement, si c'est difficile pour moi, j'espère que quelqu'un pourrait m'aider.

+0

http://guides.rubyonrails.org/association_basics.html#tips-tricks-and-warnings i Foud un lien utile, il semble nécessaire de créer la table assocation par moi-même, si les rails si n'est pas de magie dans mon esprit – mlzboy

+0

http://en.wikibooks.org/wiki/Ruby_on_Rails/ActiveRecord/Associations#has_and_belongs_to_many aussi j'ai trouvé un autre lien relevent, j'ai une autre question est de savoir comment nommer table d'assocation, products_categories ou categories_products, si les deux deux début du modèle avec le caractère c ou p mettre le nom du modèle premier dans le nom de la table d'assocation – mlzboy

Répondre

2

Vous devez créer ce tableau par vous-même

create_table :products_categories, :id => false do |t| 
    t.integer :product_id 
    t.integer :category_id 
    end 

Attention, vous devez définir le: id faux, parce que ce tableau ne colonne id besoin. Si vous avez une colonne id, la table n'est pas valide pour être utilisée sur has_and_belongs_to_many.

1
rails g model ProductCategories product:references category:references 
+0

cela ne devrait-il pas être 'ProductsCategories'? –

+0

Je pense 'ProductCategories'? –