0
我拉从我的Rails应用程序从外部API的参数平哈希。我需要在选择字段中将这些参数呈现给用户。如何从平面散列值创建分组选择?
[["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"]
上分组?
感谢您的指点。
编辑
顺便说一句,我; VE已经尝试过group_by
,因为它似乎是显而易见的路要走。但我得到can't convert String into Integer
。也许我没有正确使用它?
hash.group_by {|h| h["category"] }.map { |h| [ h["name"], h["id"], h["category"] ] }
OK,这使得有很大的意义了。感谢您的帮助!您能否推荐任何有用的信息来帮助解决未来的类似问题。 –