Чтобы создать мультиселек в рельсах, можно использовать обычный select с параметром multiselect
= form_for @thing do |f|
= f.select :user_tokens,
options_from_collection_for_select(User.all, :id, :name, @thing.users.collect {|u| u.id}),
{ :include_blank => true},
{:class => "select_multiple", :multiple => true}
Вторым параметром для хэлпера select является коллекция, которая будет преобразована в <option val="val">Name</option>, третьим - опции (в приведенном примере задействована опция включения пустого <option> в начале), четвертым - параметры html.
Для получения коллекции используется функция options_from_collection_for_select, ее формат:
options_from_collection_for_select(collection, value_method, text_method, selected = nil)
collection - коллекция
value_method - метод коллекции, который будет использоваться для получения val
text_method - метод коллекции, который будет использоваться для получения Text
<option val="value_method>text_method</option>
selected - необязательный параметр, является массивом выбранных записей. Если value совпадает с одинм из значений массива select, то к соответсвующему <option> присваивается атрибут selected
<option val="val" selected>name</option>
Комментариев нет:
Отправить комментарий