#質問内容が分かりにくいとのご指摘を頂きましたので修正致しました。どれか1つでも質問に回答頂けると有難いです。
以下のように複数のハッシュを持った配列がrailsのコントローラー側でarrという変数に格納されているとします。
arr = [{"name"=>"田中", "status"=>"学生", "id"=>21, "nationality"=>"日本"}, {"name"=>"ダニエル", "status"=>"社会人", "id"=>81, "nationality"=>"アメリカ"}, {"name"=>"ペドロ", "status"=>"研究者", "id"=>30, "nationality"=>"ブラジル"}, {"name"=>"佐藤", "status"=>"社会人", "id"=>71, "nationality"=>"日本"}]
この配列、ハッシュの中からキー"id"の値の数字を取り出し、その取り出した数字の小さい数からテーブルの左端に並べていき、そのidと同じ波かっこ{}内にある残り3つのキーを、それぞれ対応するidと同じ行に並べたいのです。
つまり単純に普通のhtmlで書くと
<table> <tr> <th>id</th> <th>name</th> <th>nationality</th> <th>status</th> </tr> <tr> <td>21</td> <td>田中</td> <td>日本</td> <td>学生</td> </tr> 以下略...
このような形となり、最終的にはhtml.erbファイル(view)で以下のようなテーブルになるよう整形したいのです。
id name status nationality
21 田中 学生 日本
30 ペドロ 研究者 ブラジル
71 佐藤 社会人 日本
81 ダニエル 社会人 アメリカ
(idのバリューの数字が昇順になっております)
この実装を困難としている理由は複数あります。
まずは多重、多次元の配列、ハッシュから取得したい値を取ってくる方法をまだ十分に扱いこなせていないこと。
配列とハッシュが組み合わさってくると処理の方法がこんがらがってくること。
またhtml.erbファイルでコントローラー側から渡される複数のデータをどう上手くview側で反映させればいいか分からないということ(例えば反映させるとしても、上の配列でしたら自分はarrに@をつけメンバ変数とし、<%>@arr</%>としてあの配列やキー、値の全てを表示する方法しかまだ分かりません)
html.erbでmapメソッドやselectメソッド使い値を抽出して、それをeachのようなイテレーターやfor文で回して。。。あれ昇順にするにはどうするんだ?どうやってerbファイルに反映するんだ?イテレーター使うとしてもコントローラー側とview側のどっちで回すんだ?と僕の知識ではとてもはいい方法を思いつけませんでした。
分かり辛い文章ではありますが、何卒ご回答頂けると幸いです。宜しくお願い致します。
回答2件
あなたの回答
tips
プレビュー