Pourquoi l'instruction suivante railsRails ActiveRecord :: find JOIN question
User.find(:all, :joins => [:roles,:roles_users],
:conditions => { :roles => { :name => 'subscriber',
:authorizable_id => self.id,
:authorizable_type => self.class.to_s }})
dans ce Traduit (avec 2x le même rejoindre)
SELECT "users".* FROM "users"
JOIN "roles_users" ON ("users"."id" = "roles_users"."user_id")
JOIN "roles" ON ("roles"."id" = "roles_users"."role_id")
JOIN "roles_users" roles_users_users ON roles_users_users.user_id = users.id
WHERE ("roles"."authorizable_id" = 4 AND "roles"."name" = 'subscriber' AND "roles"."authorizable_type" = 'Howto')
curiosité.
Oublié de mentionner que ce n'est pas un * .. * beaucoup à beaucoup de table de relation, mais un vrai modèle lui-même ayant 1 utilisateur et appartenant à 1 rôle – user62605