Javascript 在Rails中预先选择值的多个选择框

Javascript 在Rails中预先选择值的多个选择框,javascript,jquery,ruby-on-rails,Javascript,Jquery,Ruby On Rails,我一直在努力实现acts as taggable on和select2,以获得类似于stackoverflow的标记系统。我终于把一切都做好了,但有两个问题我可以解决 如何预先填充已保存的标记 当我第一次加载页面时,它不会在初始加载时应用select2javascript,但如果我刷新页面,它会使用select2javascript正确格式化页面。(使用咖啡,因此可能会切换到常规javascript) 下面是两段适用的代码: $(document).on 'ready page:load', -

我一直在努力实现acts as taggable on和select2,以获得类似于stackoverflow的标记系统。我终于把一切都做好了,但有两个问题我可以解决

  • 如何预先填充已保存的标记
  • 当我第一次加载页面时,它不会在初始加载时应用select2javascript,但如果我刷新页面,它会使用select2javascript正确格式化页面。(使用咖啡,因此可能会切换到常规javascript)
  • 下面是两段适用的代码:

    $(document).on 'ready page:load', ->
        $("select#cuisine-select").select2({
            tags: true,
            tokenSeparators: [',', ' ']
            placeholder: 'Select Cuisine'
            allowClear: true
        });
    
    表格编号:

    <div class="fields">
        <%= f.label :cuisine_list, "Cuisines (separated by commas)" %>
        <%= f.collection_select :cuisine_list, Recipe.cuisine_counts, :id, :name, {},
                        { multiple: true, id: "cuisine-select", :style => "width:300px"} %>
    </div>
    
    
    “宽度:300px”}%>
    
    编辑:解决了部分问题,但现在当我加载编辑时,它会正确加载,但当我更新时,它会使用ID而不是名称进行更新。我将其改为:

    <div class="fields">
        <%= f.label :cuisine_list, "Cuisines (separated by commas)" %>
        <%= f.collection_select :cuisine_list, Recipe.cuisine_counts, :id, :name, {:selected => recipe.cuisine_counts.map(&:id)},
                            { multiple: true, id: "cuisine-select", :style => "width:300px"} %>
    </div>
    
    
    recipe.courine_counts.map(&:id)},
    {multiple:true,id:“烹饪选择”,:style=>“宽度:300px”}%>
    
    此外,我还将页面:load改为turbolinks:load,这似乎解决了初次访问时不加载页面的问题