2017-02-20 29 views
0

Я использую ВЫБ.2 версии 4.0.3восстановить сохраненную/начальное значение для выбор2 4.0.3 с рельсами

ниже моего HTML с помощью тега выберите рельсам Helper

<%= f.select(:hotel_id, [], {}, :class => 'select2-autocomplete') %> 

ниже мой CoffeeScript (рабочий для создания нового)

$('.select2-autocomplete').select2 
    multiple: false 
    width: "98%" 
    placeholder: "Type Hotel name" 
    minimumInputLength: 3 
    ajax: 
    url: '/hotels/search_name.json' 
    dataType: 'json' 
    delay: 250 
    data: (params) -> 
     q: params.term 
    processResults: (data, params) -> 
     results: $.map data, (item)-> 
     id: item.id 
     text: item.name 

ранее это было сделано с помощью initSelection для ВЫБ.2 версии 3.5.3, но тогда есть изменения для версии 4.0.3, и я прочитал documentation, но ули плохой результат не имеет,

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

ответ

0

Наконец после нескольких проб и ошибок ниже, как использовать ВЫБ.2 версии 4, чтобы восстановить значение, вероятно, это не чистый, но он работает

<% if f.object.persisted? && f.object.hotel_id %> 
    <% if f.object.hotel_id > 0 %> 
    <% value = f.object.hotel_id %> 
    <% text = Hotel.find(value).name %> 
    <% end %> 
<% end %> 
<%= f.select(:hotel_id, options_for_select([["#{text}", value.to_s]]), {selected: value}, :class => 'select2-autocomplete') %> 

Ключ ответа на нижней строке,

  • с использованием f.select,
  • сгенерировать опцию, используя option_for_select
  • убедитесь, что параметр использует строковое значение.to_s
  • при использовании опции {отмеченными: значение}

надеюсь, что это может помочь другим пользователям Рельсы, что с помощью ВЫБ.2 с поиском АЯКС