ハッシュの抜粋はありますか?レールでハッシュを引き抜く
私は以下のようなハッシュを持っており、次のコマンドを実行しようとしました。私はそれがさまざまなやり方でできることを知っています。しかし、以下のような抜き差し方法がある場合は、私は夢中になります。
hash = {"0"=>{"user_id"=>"1"}, "0"=>{"user_id"=>"2"}}
hash.pluck("user_id")
ハッシュの抜粋はありますか?レールでハッシュを引き抜く
私は以下のようなハッシュを持っており、次のコマンドを実行しようとしました。私はそれがさまざまなやり方でできることを知っています。しかし、以下のような抜き差し方法がある場合は、私は夢中になります。
hash = {"0"=>{"user_id"=>"1"}, "0"=>{"user_id"=>"2"}}
hash.pluck("user_id")
ハッシュにそれを呼び出す:
とそれともできモンキーパッチのハッシュクラス。
hash = {"0"=>{"user_id"=>"1"}, "1"=>{"user_id"=>"2"}}
hash.values.map{|h| h['user_id']} # => ["1", "2"]
必要であれば、あなたもこれを取ると、あなたのpluck
方法としてArray
に追加することができます。もちろん、「あなたはできる」「あなたをすべきである」という意味ではありません:)
これは
hash.inject([]) do |acc, el|
acc << el.last.try(:[], 'user_id').to_i
acc
end
はここで結果
[38] pry(main)> hash.inject([]){|acc, el| acc << el.last.try(:[], 'user_id').to_i; acc}
=> [1, 2]
で動作するはずです。しかし、それはあなたが提供するハッシュのために動作します。その後、
# config/initializers/hash.rb
class Hash
def hash_pluck(key)
self.inject([]){|acc, el| acc << el.last.try(:[], key).to_i; acc}
end
end
そして、あなたができる最善のは簡単map
ある
[2] pry(main)> hash.hash_pluck('user_id')
=> [1, 2]
「試着」とは何ですか? –
はい、私はそれがルビーではない方法であることを知っています。だから、タグにしたがって我々はrorについて話している。 – retgoat
私はあなたがそれを必要としないことを意味しました。 –
activesupportのはpluck
to Enumerable
を追加し、それが3またはレール4のレールですか? –
男、誰かが今朝downvote酒宴にあります:P – jaydel