I have been using Squirrel (http://thoughtbot.com/projects/squirrel)
for performing rails searches. It really takes the thinking out of sql
conditions and makes it so much more like normal ruby syntax.
I have recently been using the acts_as_tree gem(http://github.com/
jcnetdev/acts_as_tree/tree/master) for a Group model that has
children, grandchildren etc. Squirrel works well for the children and
parent methods since these are normal associations but for methods
like "ancestors" and "all_children" which are recursive
methods ,
squirrel won''t work.
I don''t fully understand how squirrel uses associations. Can you think
of a way that squirrel could be used in this kind of way
Group.find(:all) do
ancestors.name.contains?("Department")
end
Many thanks
Anthony
--~--~---------~--~----~------------~-------~--~----~
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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
I think you''ve answered your own question, the
''ancestors'' method is a
method which returns a list, it needs an instance to work upon.
Squirrel cannot supply the instance, since squirrel is tryimng to map
Ruby code into a static SQL query to then find the instances.
Not a terribly clear explanation, unfortunately.
To slightly restate your problem: you''re looking for the children of
any Groups with name == "Department"
So the untested code
Group.find(:all) do
name == "Department"
end.map{ |group| group.children }.flatten.uniq
might work. It''s not a single SQL query but may be enough to get the
job done.
Allan
--~--~---------~--~----~------------~-------~--~----~
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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---