2017-02-20 124 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搜索