2010-11-05 12 views
0

J'utilise Rails 3.0.1/Ruby 1.9.2Rails relations ne fonctionnent pas

J'ai deux tables: Product et Category.

Ce sont les modèles:

class Product < ActiveRecord::Base 
    belongs_to :parent_category, :class_name => "Category" 
end 

class Category < ActiveRecord::Base 
    has_many :products 
end 

Je veux accéder à la catégorie du produit en appelant product.parent_category, et obtenir tous les produits d'une certaine catégorie en appelant category.products.

Mais cela ne fonctionne pas.

Rails soulève une exception quand je fais category.products

column products.category_id does not exist 

Il essaie de trouver la colonne category_id, mais j'ai une colonne parent_category_id dans ma table et je veux l'utiliser.

Comment puis-je résoudre ce problème?

+1

ne doit pas le modèle de la catégorie "have_many: produits"? –

+0

@Nate, vous avez raison. C'est une faute de frappe. Fixé. – Alex

+0

Et j'ai eu une faute de frappe dans mon commentaire. Ha! "has_many: products" –

Répondre

1

Essayez ceci:

class Product < ActiveRecord::Base 
    belongs_to :parent_category, :class_name => "Category" 
end 

class Category < ActiveRecord::Base 
    has_many :products, :foreign_key => :parent_category_id 
end 
1
class Product < ActiveRecord::Base 
    belongs_to :parent_category, :class_name => "Category", :foreign_key => "parent_category_id" 
end 
+0

Merci, mais cela ne le résout pas. Même erreur ... – Alex

Questions connexes