パラメータのフラットハッシュを外部APIからRailsアプリにプルしています。これらのパラメーターを選択フィールドでユーザーに提示する必要があります。
ハッシュの形式は次のとおりです。
[["Name", "ID", "Category"]]
これをグループ化された選択として提示したいと思います。しかし、grouped_selectタグは、フラットハッシュではなく、階層ハッシュを取ると思いますか?
このハッシュを構造化ハッシュに再構築する簡単な方法はありますか?すなわち、
['CategoryA', [['Name-A1','ID-A1'],['Name-A2', 'ID-A2']]
参考までに、私は現在、このようにコントローラーでハッシュを処理しています
@hash = session["hash"].map { |h| [ h["name"], h["id"], h["category"] ] }
とビューで
<%= f.select :hash_id, @hash %>
これにより、順序付けられていないオプションのリストが表示されます。どうすればグループ化できh["category"]
ますか?
ポインタをありがとう。
編集
ちなみに、当たり前のgroup_by
ように思えたので、もうやってみました。しかし、私は得てcan't convert String into Integer
います。おそらく私はそれを正しく使用していませんか?
hash.group_by {|h| h["category"] }.map { |h| [ h["name"], h["id"], h["category"] ] }