рельсы выберите тег с несколькими предварительно выбранными значениями - PullRequest
34 голосов
/ 04 февраля 2010

Я пытаюсь получить окно множественного выбора. Поле выбора будет содержать все хранилища в БД, но будут выбраны те, к которым принадлежит пользователь.

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

У меня есть следующее:

<%= select_tag 'stores[]', options_for_select(@stores.map {|s| [s.store_name, s.store_id]}, 
:selected => @user.stores.map {|j| [j.store_name, j.store_id]}), :multiple => true, :size => 
10 %>

У меня есть карта магазинов, к которой принадлежит пользователь. это в:

@user.stores

Ответы [ 2 ]

53 голосов
/ 04 февраля 2010

после большого количества проб и ошибок у меня сработало следующее:

<%= select_tag 'stores[]', options_for_select(@stores.map { |s| [s.store_name, s.store_id] }, @user.stores.pluck(:id)), multiple: true, size: 10 %>
13 голосов
/ 01 мая 2013

Другой способ сделать это - использовать вспомогательный метод options_from_collection_for_select . Это будет выглядеть примерно так:

<%= select_tag 'stores[]', options_from_collection_for_select(@stores, :store_id, :store_name, [4,5,6]), multiple: true, size: '10%' %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...