我有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