Выбор сгруппированной коллекции на одной модели / столе?
Можно ли сделать grouped_collection_select на одной модели? Большинство примеров, которые я видел, используют две модели. Например, этот Railscast: http://railscasts.com/episodes/88-dynamic-select-menus-revised
У меня есть модель Venue с полями для названия места и города (среди прочего). В настоящее время мой выбор места проведения огромен, и я хотел бы группировать по городам. Нужно ли перемещать города в отдельную модель?
1 ответ
Где вы храните города сейчас? В любом случае, может быть лучшим решением иметь города в другой модели, но это зависит от других вещей, например, если вы считаете, что данные о городах со временем изменятся. Однако вы можете легко добавить сгруппированный выбор без новой модели. Попробуйте что-то вроде этого:
<% form_for @venue do |f| %>
<%= f.select :town, grouped_options_for_select(@towns) %>
...
Тем не менее @towns
должен быть и 2-мерный массив, как это
[
["Group1",
["Town1", "Town2", "Town3"]
],
["Group2",
["Town4", "Town5", "Town6"]
]
]
Вы можете увидеть больше здесь: http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html
В противном случае, если у вас есть пример некоторых данных для городов и вашей текущей формы, могу ли я помочь вам больше:)