2017-02-20 138 views
0

我使用的是選擇2版本4.0.3恢復保存/初始值

下面

是使用select標籤我的html軌幫手

<%= 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爲3.5.3版本選擇2完成,但再有就是對4.0.3版本的變化,我也讀documentation但ST生病沒有好結果,

我的問題是當用戶編輯頁面時,我需要恢復以前的選擇值並顯示它。

回答

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
  • 確保選擇是使用字符串value.to_s
  • 生成選項
  • 選擇使用的情況下{選擇:值}

希望這可以幫助其他用戶的軌道,採用選擇2與AJAX搜索