我有3級關係。Rails - 在視圖(或助手)中採集子記錄的名稱
用戶的has_many客戶HAS_MANY項目
User.projects
將工作User.clients
會工作。
在視圖中,我試圖弄清用戶擁有的每個客戶端的項目。
IE客戶端A有2個項目,客戶端B有4個,客戶端C有3個。它會返回「客戶端A:2.客戶端B:4.客戶端C 3」。
目前我能得到的最接近的是pie_chart current_user.projects.group(:client).count
,它實際上只是沿着#<Client:0x000000xd3948>
這條線返回 - 我假設的模型/關係。
我嘗試做current_user.clients
,所有記錄將返回undefined
。
我在想也許我需要把這個變成一個幫手,並迭代user.clients
並計算出來,但是考慮到這種關係似乎是錯誤的。
(不確定要添加哪些其他輸入)
基本上我需要一個Group By
但掙扎的Rails-ING它。
SELECT clients.name, count(*) FROM clients JOIN projects on clients.id = projects.client_id WHERE user_id = 1 GROUP BY clients.name;
該查詢返回我需要確切的結果。
試試這個'custom_arr = user.clients.collect {| p | [p.name,p.projects.count]}' –
@StephenM比我的更乾淨 - 謝謝!我會研究'collect'。 – DNorthrup