acts_as_tree is meant for self-referential tables (ie. A Recipie that
has child Recipes) Think, What is hierarchical in nature that you''re
modeling? I believe what you want is this:
Table structure:
Products
id
parent_id
name
Recipes
id
product_id
quantity
class Product < ActiveRecord::Base
acts_as_tree
has_many :recipes
end
class Recipe < ActiveRecord::Base
belongs_to :product
end
On Sep 24, 1:37 pm, Lucas HĂșngaro
<lucashung...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
wrote:> 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.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---