1
我試圖讓我的ActiveRecord查詢更有效率。我有用戶和項目,用戶對項目有一種感覺,並帶有布爾響應。如何將所有數據保存在has_many中:通過ActiveRecord關係?
這裏是我的模型:
用戶:
has_many :feelings
has_many :items, :through => :feelings
感覺:
belongs_to :user
belongs_to :item
attr_accessible :response
項目:
attr_accessible :name
所以,我可以得到一個用戶的感覺名單通過:
User.find(1).feelings
,我可以得到他有關感情的項目清單:
User.find(1).items
這是所有罰款。我想要的是,上述兩個查詢在一個結果集中的組合。理想情況下,我希望能夠查詢用戶項目的列表,並用這些結果獲取他們對每個項目的響應。
如果這是直接的SQL,我可以這樣做:
SELECT * FROM items INNER JOIN feelings ON items.id=feelings.item_id WHERE feelings.user_id = 1
這就給了我一切,我需要在一個表中。這也是ActiveRecord在查詢User.find(1).items
時所做的,除了它在創建我的結果散列值之前拋棄感情表中的數據。
我該如何阻止它拋出intermediatry數據,從而爲我節省額外的數據庫查詢?
任何幫助表示讚賞!