Ruby on rails 在铁轨上拔出散列

Ruby on rails 在铁轨上拔出散列,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 4,有吃杂烩的勇气吗 我有一个如下所示的散列,我试图用下面的命令来清除。我知道可以用不同的方法来做。但我不知道是否有以下的拔毛方法 hash = {"0"=>{"user_id"=>"1"}, "0"=>{"user_id"=>"2"}} hash.pluck("user_id") Pull仅适用于ActiveRecords 参考-Pull仅适用于ActiveRecords 参考-这应该有效 hash.inject([]) do |acc, el| acc <&

有吃杂烩的勇气吗

我有一个如下所示的散列,我试图用下面的命令来清除。我知道可以用不同的方法来做。但我不知道是否有以下的拔毛方法

hash = {"0"=>{"user_id"=>"1"}, "0"=>{"user_id"=>"2"}}
hash.pluck("user_id")

Pull仅适用于ActiveRecords


参考-

Pull仅适用于ActiveRecords

参考-

这应该有效

hash.inject([]) do |acc, el| 
  acc << el.last.try(:[], 'user_id').to_i
  acc
end
这应该行得通

hash.inject([]) do |acc, el| 
  acc << el.last.try(:[], 'user_id').to_i
  acc
end

你能做的最好的事情就是一张简单的
地图

hash = {"0"=>{"user_id"=>"1"}, "1"=>{"user_id"=>"2"}}
hash.values.map{|h| h['user_id']} # => ["1", "2"]

如果需要,您甚至可以将其作为
pulk
方法添加到
Array
。当然,“你能”并不意味着“你应该”:)

你能做的最好的事情就是简单的
映射

hash = {"0"=>{"user_id"=>"1"}, "1"=>{"user_id"=>"2"}}
hash.values.map{|h| h['user_id']} # => ["1", "2"]

如果需要,您甚至可以将其作为
pulk
方法添加到
Array
。当然,“您可以”并不意味着“您应该”:)

ActiveSupport添加了

ActiveSupport添加了

试一试是怎么回事?是的,我知道这是rails方法而不是ruby。所以,根据我们谈论的ror标签,我的意思是你们不需要它。是的,这是一种习惯:)无论如何,你们的方法更好。
怎么了试试
?是的,我知道这是一种rails方法,而不是ruby。所以根据我们谈论ror的标签。我的意思是你不需要它。是的,这是一种习惯:)无论如何,你的方法更好。是rails 3还是rails 4?伙计,今天早上有人在投反对票:PIs是rails 3还是rails 4?伙计,今天早上有人在投反对票:P
hash = {"0"=>{"user_id"=>"1"}, "1"=>{"user_id"=>"2"}}
hash.values.map{|h| h['user_id']} # => ["1", "2"]