私のメソッドが配列をループして各ハッシュ要素をJSONに変換するときに、define_method(または他の方法)を使って配列名を生成する方法を解明しようとしています。現在、私のデータはファイルにダンプされた一連のハッシュ配列であり、大きな配列には含まれていません。define_methodを使ってRubyで動的配列名を生成する
data_arrays = [{"key1":"value1"}, {"key2":"value2"}]
[{"key3":"value3"}, ("key4":"value4")]
[{"key5":"value5"}, ("key6":"value6")]
私が扱おうとしていたコードは、次のようなものです。基本的に、私はこのラインを意識してい
data_arrays.each do |element|
for (i = 0; i < data_array.length; i+=1) do
define_method("json_array_#{i}") do
json_array_[i] = element.to_json
end
end
end
など、json_array_1のような、jason_array_2、各ハッシュ配列をJSONに変換すると、新しい名前を割り当てることがしたい:
for (i = 0; i < data_array.length; i+=1) do
が本当にRubyや、全く良いコードではありません。しかし、ループを反復する方法が必要でしたが、変数 "i"をjson_arrayの名前に挿入できるようにしました。誰も私にこのコードを動作させるためのポインタを教えてもらえますか?私はおそらく物事を思慮深く考え、実際よりももっと難しくしています。
あなたは問題をはっきりと示しておらず、私は小さな事柄しか手助けできません。 (1)配列インデックスを取得するには 'data_arrays.each_with_index do | element、i | ' (2)メソッドを動的に呼び出すには' send( "json_array _#{i} ="、element.to_json) ' –
'data_arrays'のいくつかのエラーがあります。私の答えでどのように定義したかを見てください。 –