我有一个函数 users_by_role
它以以下格式返回数据,
[
[#<Role id: 1, name: "Developer">,[#<User id:1, name: "Abc">,#<User id:2, name: "xyz">]]
[#<Role id: 2, name: "Tester">,[#<User id:11, name: "Abcd">,#<User id:12, name: "wxyz">]]
]
现在,我想为给定的角色选择用户
我在用,
project.users_by_role.select{|o| o.first.name == "Developer"}
其中 project 是一个 Project 对象
一切都好,代码返回给我数据,但随之而来的是我收到以下警告
警告:块参数的多个值(2 比 1)
我也在寻找优化和更短的方法来做到这一点
完整的代码片段如下所示:
project.users_by_role.select{|o| o.first.name == "Developer" }.collect{|e| e.last.map{|f| [f.id,f.firstname + ' ' + f.lastname]}}.flatten(1).uniq
通过上面的代码,我想获取给定角色的所有用户名。