我的用户模型has_many :event_patrons和 EventPatron belongs_to :user。我想用这样的 sql 语句将用户与一个特定的活动赞助人一起拍打:
SELECT * FROM `users`
INNER JOIN `event_patrons` ON `event_patrons`.`user_id` = `users`.`id`
WHERE `event_patrons`.`event_id` = 1
所以在rails中我尝试了这个:
User.all(:joins => :event_patrons,
:conditions => {:event_patrons => {:event_id => 1}})
但这给了我SELECT users.*而不是SELECT *:
SELECT `users`* FROM `users`
INNER JOIN `event_patrons` ON `event_patrons`.`user_id` = `users`.`id`
WHERE `event_patrons`.`event_id` = 1
然后,我尝试切换:joinswith:include并得到一团乱麻,仍然只返回我的列,User而没有 from EventPatron。
我错过了什么?