前提
Rubyにて下記のデータをxのvalueのみを一つづつ変数に入れたいです。
{"x"=>210, "y"=>55}
{"x"=>132, "y"=>65}
{"x"=>50, "y"=>55}
{"x"=>90, "y"=>115}
{"x"=>170, "y"=>115}
{"x"=>130, "y"=>165}
{"x"=>90, "y"=>215}
{"x"=>170, "y"=>215}
{"x"=>20, "y"=>185}
{"x"=>250, "y"=>185}
こちらの値はcoordinatesという変数に入っていた値を下記のようにした時に出力されました。
puts JSON.parse(formation_post_params["coordinates1"])
実現したいこと
@coordinate_xというインスタンス変数に
210 132 50 90 170・・・20 250 というふうにxのvalueだけを順に入れていきたいです
発生している問題・エラーメッセージ
下記のようにしたのですがうまくいかず、どのようにすれば良いのか分かりません
coordinates.map {|hash| hash["x"]}
該当のソースコード
Ruby
puts '------start--------' puts JSON.parse(formation_post_params["coordinates1"]) puts '-------end-------.'
terminal
------start-------- {"x"=>210, "y"=>55} {"x"=>132, "y"=>65} {"x"=>50, "y"=>55} {"x"=>90, "y"=>115} {"x"=>170, "y"=>115} {"x"=>130, "y"=>165} {"x"=>90, "y"=>215} {"x"=>170, "y"=>215} {"x"=>20, "y"=>185} {"x"=>250, "y"=>185} -------end-------.
試したこと
def create puts '------start--------' puts JSON.parse(formation_post_params["coordinates1"]) puts '-------end-------.' @coordinates = JSON.parse(formation_post_params["coordinates1"]) for i in @coordinates do @coordinates[i].values puts @coordinates end @formation_post = FormationPost.new(formation_post_params) @formation_post.save redirect_to formation_posts_path, notice: '保存しました' end
エラーが出ています。
no implicit conversion of Hash into Integer
補足情報(FW/ツールのバージョンなど)
Rails6
Docker
0 コメント