Hello folks.
I’m having some trouble here, hope you can help me =D.
I have two associated models: Product and Recipe.
A Recipe is… a recipe, showing the components of a Product… which
are Products too.
So, the table structure is:
Products
id
name
unity_id
(…)
Recipes
id
product_id (the parent_id, a product)
child_id (the child_id, also a product)
quantity
(…)
The table recipes is a tree structure. Sometimes the user may want to
retrieve the complete “recipe” of one or more products. I’ve tried to
use acts_as_tree but I’m getting some weird behaviors, such as
infinite loops depending on the tree structure. I guess it’s because I
don’t use the “id” of the recipes table as one of the keys in the
relationship. Acts_as_tree allows me to configure the parent_id column
(which I’ve set to product_id), but it still doesn’t work, I think
that I need to let it know about child_id…
So, anyone knows how to make this work?
PS: here are the models code
class Recipe < ActiveRecord::Base
acts_as_tree :foreign_key => ‘product_id’
belongs_to :products,
:class_name => “Product”,
:foreign_key => “product_id”
belongs_to :children,
:class_name => “Product”,
:foreign_key => “child_id”
end
class Product < ActiveRecord::Base
has_many :recipes
has_many :children, :through => :recipes, :foreign_key => :child_id
has_many :fathers, :through => :recipes, :foreign_key => :product_id
end
Thanks in advance.