Я точно не знаю, о каком уровне детализации вы говорите, но обычно, когда мне приходилось выполнять соединение таким образом, я могу ссылаться на объединенные поля непосредственно из полученных объектов. Например, в проекте, где Заказчик может сделать несколько бронирований:
customer = Customer.first
=> #<Customer id:1 ...>
customer.date
=> NoMethod Error (this is a Reservation method)
но ...
customer = Customer.find_by_sql("select * FROM customers INNER JOIN reservations ON customers.id = reservations.customer_id").first
=> #<Customer id:1 ...> #looks the same, but isn't
customer.date
=> "2010-12-24"
Да, я понятия не имею, но объект реагирует на объединенные поля. Я искал минуту, чтобы понять, как отличить обычный объект от объекта с присоединенными полями, но не смог понять. Извините за краткость в мыслях и ответах, но опаздываю ...