爲什麼下面的鐵軌聲明的Rails的ActiveRecord ::發現加入語句問題
User.find(:all, :joins => [:roles,:roles_users],
:conditions => { :roles => { :name => 'subscriber',
:authorizable_id => self.id,
:authorizable_type => self.class.to_s }})
轉換成這(與2個相同的連接)
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')
只是好奇。
忘了提及這不是一個* .. *多對多的關係表,而是一個真正的模型,它擁有1個用戶並且屬於1個角色 – user62605 2009-06-18 00:52:04