1

コントローラーに渡されたいくつかのパラメーターを反復処理するときに、キーと値をハッシュにプッシュしようとしています。以下のコードのスニッパーはハッシュの配列を作成しますが、複数のキーと値のペアを持つハッシュが必要です。どうすればいいですか?

 @diff_attr = []
 params[place_type].each_pair do |k, v|
   @diff_attr << {k.to_sym=>v}
 end

@diff_attr を hash: に変更する必要があります@diff_attr = { }が、この後、反復ブロック内でキーと値を渡す方法がわかりません。

現在、 I の場合puts @diff_attr、次のような結果が得られます。

{:name => "blah blah"}, {:age => "24"}

しかし、私はもっと次のようなものが欲しい:

{:name=>"blah blah", :age=>"24"}

4

2 に答える 2

3
 @diff_attr = {}
 params[place_type].each_pair do |k, v|
   @diff_attr[k.to_sym] = v
 end
于 2012-10-14T00:49:49.667 に答える
2
@diff_attr = params[place_type].each_with_object({}) do |k,v,hash|
  hash[k.to_sym] = v
end
于 2012-10-14T00:56:46.573 に答える