My User model looks like:
User habtm :Roles Role habtm :Users RoleExtension belongs_to :Role
mysql tables:
user = User.find(1) RoleExtension.find(:all, :conditions => ["role_id IN (?)", user.role_ids])
Otherwise you can use nested joins.