Есть ли способ сгруппировать столбцы на основе другого столбца в одной таблице для раскрывающегося списка с сгруппированными параметрами? - PullRequest
0 голосов
/ 02 мая 2019

Я пытаюсь отобразить раскрывающийся список, значения которого должны отображаться в порядке различных полей в одной таблице.

, т. Е. Таблица "users" имеет id, category, * 1005.* и description.

Мне нужно отобразить меню выбора для имени пользователя, и эти значения должны быть сгруппированы по категориям.Я использовал grouped_collection_select для достижения этой цели, но не повезло, поскольку эти поля присутствуют в одной таблице.

<div class="field">
  <%= form.label :user_id %>
  <%= form.grouped_collection_select :user_id, Something.order(:category), User.order(:name), :category, :id, :name %>
</div>

Любая помощь приветствуется!

1 Ответ

1 голос
/ 02 мая 2019

давайте сначала посмотрим на документ: https://api.rubyonrails.org/v5.1/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-grouped_collection_select

grouped_collection_select(object, method, collection, group_method, group_label_method, option_key_method, option_value_method, options = {}, html_options = {})

и пример:

grouped_collection_select(:city, :country_id, @continents, :countries, :name, :id, :name)

, если честно, сам этот метод не совсем понимаю, поэтому давайтеиспользуйте grouped_options_for_select.

f.select :name, grouped_options_for_select(User.all.group_by(&:category))

это предполагает, что у вас есть атрибут category в вашей модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...