2013-08-16 119 views
2

我在優化大型活動記錄查詢時遇到問題。我需要在我的請求中包含關聯的模型,但由於返回集的大小,我只想包含幾個關聯的列。例如,我有:Rails Activerecord查詢選擇性包括

Post.includes(:user).large_set 

雖然我尋找的東西,如:

Post.includes(:user.name, :user.profile_pic).large_set 

我需要實際使用的姓名和個人資料PIC屬性,以便Post.joins(:用戶)是不是一種選擇據我所理解。

回答

2

select是你在找什麼:

Post.select("posts.*, users.name, users.profile_pic").large_set 

http://guides.rubyonrails.org/active_record_querying.html#selecting-specific-fields

+0

這不正是我一直在尋找,但你是正確的,我需要選擇方法,所以我打算接受這個答案。技術上你的電話包括整個用戶模式,這正是我試圖避免的。最小的調用是Post.select(「posts。*,users.name,users.profile_pic」)。large_set – Raskolnikov

+0

感謝您的幫助順便說一句。 – Raskolnikov

+0

不客氣。我更新了答案,以匹配對你有用的東西。 – 2013-08-19 22:18:00

0

您將不得不使用連接來完成您想要的任務,因爲包含沒有此功能。或者你可以白自己的方法包括:-)