OT? Using Arel to generate table names in multiple self join query

Firstly I'm sorry if this is off-topic but I think it's a question
that won't be answered without good core knowledge.

I have written a multiple self join query something like this:

Person.find :all,
  :select => 'children_people_3.*',
  :joins => { :children => { :children => :children } },
  :conditions => {
    :people => { :name => 'tom' },
    :children_people => { :name => 'dick' },
    :children_people_2 => { :name => 'harry' },
    :children_people_3 => { :name => 'charles' }

That's fine insofar as it returns the desired result, but I am very
unhappy with the prospect of having to hardcode assumptions about what
the tables will be aliased with in the conditions and select (people,
children_people, children_people_2, etc.).

Is there some way I can write this making use of Arel so that the
table names in the conditions are not hardcoded, and so is robust to a
change in Arel's naming algorithm?