2014-09-25 78 views
0

我有一個名爲contacts的activerecord關係對象。每個聯繫人模式都有一個主角。我想返回潛在客戶關係,因此我無法使用地圖,收集,選擇。通過集合訪問關係時保持活動記錄關係

顯然,這不起作用,因爲迭代器打破了關係:

contacts.select(&:lead) 

這工作,但返回聯繫人作爲關係對象,而不是線索:

contacts.joins(:lead) 

因此,當我嘗試對結果調用group_by_week active關聯方法:

contacts.joins(:lead).group_by_week(:created_at).size 

created_at refer對聯繫人,而我希望它指的是線索。

+0

你爲什麼不能使用地圖? – 2014-09-25 15:59:53

+0

@japed如果我使用map,我得到這個錯誤:TypeError:在運行this時不會將Symbol隱式轉換爲Integer:contacts.map(&:lead).group_by_week(:created_at).size,因爲group_by_week期望關係不是數組。 – Donato 2014-09-25 16:01:06

回答

0

我只是不喜歡這樣。

leads = Lead.where(contact_id: contacts) 

如果失敗,則可能需要選擇聯繫人的ID和傳遞這些在

leads = Lead.where(contact_id: contacts.map(&:id))