Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
合并两个ruby数组_Ruby_Ruby On Rails 3 - Fatal编程技术网

合并两个ruby数组

合并两个ruby数组,ruby,ruby-on-rails-3,Ruby,Ruby On Rails 3,非常简单,但我需要为系统中的每个管理员用户加上1个其他用户运行一些代码 我可以得到这样的管理员用户 account.users.where(:hr => 1).map(&:id) 个人用户也是这样 user.manager_id 那么我如何把这些放在一起生成一个唯一的数组,因为在第二段代码中标识的用户“可能”在第二段代码中找到。下面的代码似乎可以工作,但我相信有一种更优雅的方法可以做到这一点 myarray = [] a.employees.where(:hr => 1)

非常简单,但我需要为系统中的每个管理员用户加上1个其他用户运行一些代码

我可以得到这样的管理员用户

account.users.where(:hr => 1).map(&:id)
个人用户也是这样

user.manager_id
那么我如何把这些放在一起生成一个唯一的数组,因为在第二段代码中标识的用户“可能”在第二段代码中找到。下面的代码似乎可以工作,但我相信有一种更优雅的方法可以做到这一点

myarray = []
a.employees.where(:hr => 1).each do |user|
  myarray << user.id
end

myarray << user.line_manager_id
myarray.uniq
myarray=[]
a、 员工。其中(:hr=>1)。每个do |用户|
myarray
myarray=a.employees.where(:hr=>1).pull(:id)
myarray
myarray=a.employees.where(:hr=>1).pull(:id)
myarray您可以使用数组“union”方法:

您可以使用数组“union”方法:


uniq似乎是一个错误的选择。e、 g.
[1,2,3].uniq!#=>nil
假设
myarray.uniq!的返回值未使用,返回的内容无关紧要。重复ID已被丢弃,或者
myarray
与调用前相同。
uniq似乎是一个错误的选择。e、 g.
[1,2,3].uniq!#=>nil
假设
myarray.uniq!的返回值未使用,返回的内容无关紧要。重复ID已被丢弃,或者myarray与通话前相同。回答很好,不过解释一下会很好。尤其是由于union(
|
)操作符不是人们经常使用的。谢谢,@engineersmnky。指向该方法的链接正在进行…:-)不要使用@Stefan来代替
map(&:id)
use,这可能与Rails有关,这对我来说是陌生的,但我相信你的话,它是<代码>id
获取id属性,而不实例化任何记录。(“这似乎是错误的,因为我创建了很多对象只是为了获取它们的ID?”)回答得很好,不过解释一下会很好。尤其是由于union(
|
)操作符不是人们经常使用的。谢谢,@engineersmnky。指向该方法的链接正在进行…:-)不要使用@Stefan来代替
map(&:id)
use,这可能与Rails有关,这对我来说是陌生的,但我相信你的话,它是<代码>id
获取id属性,而不实例化任何记录。(“这似乎是错误的,因为我创建了很多对象只是为了获取它们的ID?”)
myarray = a.employees.where(:hr => 1).pluck(:id)
myarray << user.line_manager_id

myarray.uniq!
account.users.where(:hr => 1).map(&:id) | [user.manager_id]