問題意識
Ruby on Rails で OPTGROUP によるプルダウンメニュー/セレクトボックスの多層メニューを実現したい。
みたいなもの。
解決方法
grouped_collection_select を使う。
ここのAPI解説がとてもよい。英語だがしっかり読めば理解できる。
要するに、親が複数の子要素を持つ場合、親要素のリスト、親要素から子要素を取り出すメソッド名、親要素の名前を取り出すメソッド名、子要素の名前と値を取り出すメソッド名等を指定することで、OPTGROUP と OPTION からなる HTML 断片を生成してくれる。
一瞬引数が多くてビビるが、理解してしまえば、すごく便利。