Rails4でformから配列データを受け取った際のparamsのデータ構造がArrayにならない。Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。登録してこのコミュニティに参加するどなたでも質問していただけますどなたでも回答していただけます最もよい回答には賛成票が入り、最上位に上がりますホーム質問タグユーザーRails4でformから配列データを受け取った際のparamsのデータ構造がArrayにならない。3,555件0Javascriptを利用してフォームに設定する値を増やす事ができるようにしています。value="鉄の杖"></form>上記のようにJavascriptから追加された要素を送信するとRailsのparamでは以下の様な値を取得することができました。}}配列のインデックスが文字列として認識されてしまい、期待していたデータ構造の[](Array)が{}(Hash)になってしまっているのが原因だと思うのですが。無視して以下のコードを実行します。vendすると、何故かvの値が以下のような配列に変換されて何故かindexが付いているような構造になってしまいます。"info"=>"値"}の形式のHashを取得するにはどうすればよいのでしょうか。keyとvalueを引数にブロックを評価するので、そういうことになります。http://docs.ruby-lang.org/ja/2.0.0/method/Hash/i/each.htmlformから送信された配列の箇所をparamで配列として受け取り配列の添え字として不適切なキーが混ざったときのことを考えると、「キーが明示されたら常にHashとして扱う」というルールの方が明確ですから、Railsもそういう仕様なのかなと。上記ヘルプにもありますが、2引数を受け取るようにすると簡単です。Hash#values。vendただ、添え字順にしたいならソートした方がいいでしょう。vend飛び飛びの添え字を維持したいなら配列を作っておいて入れるとか。いった形で別々の配列で受け取り、あとでzipするという方法もおもしろいですね。keyだとしたら"0"や"1"などの値が代入されそうな気がしますが、出力してみると値まで付いてくるのはいったいどういうことなのでしょうか。最初のサンプルがちょうど「1引数を受け取るブロック」を渡した例ですが、キーと値の配列が渡されてますよね。これはどうもブロックを呼び出す際の仕様のようです。10:39なるほど、引数の数が違うと帰ってくる値の種類も変わるということなのですね。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。公開5周年をお祝いしましょう!🌸コメントで回答する理由を教えてください関連する質問6Railsの「params」というメソッドがよく分からない2Rails4+Deviseのユーザ情報編集画面のフォームから受け取った値を書き換えて保存したい。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。