Год опоздал, но, надеюсь, это поможет кому-то еще.
В основном со Squeel вы бы сделали что-то вроде этого:
@companies_user = Company.joins{contacts}.where{contacts.user_id == current_user}
Вы можете пойти еще дальше и найти что-то внутри объединенной таблицы и таблицы, к которой вы обращаетесь:
@companies_user = Company.joins{contacts}.where{(contacts.user_id == current_user) & (company_name =~ 'Apple')}
# would translate to
SELECT ... FROM...
<join statements>...
WHERE contacts.user_id = <current_user> AND company.company_name LIKE 'Apple'
См. эту статью
Он делает именно это и даже больше.