2017-03-05 76 views
0

我想弄清楚如何在简单形式中使用select2与我的rails 5应用程序。Rails 5,简单形式与Select2导轨

我在应用程序中使用行为作为标记。

我在宝石文件安装这种宝石:

gem 'select2-rails' 

我想在我的Gemfile安装此宝石,但我得到一个错误说,它不能被发现。我想知道它是否与Rails 5不兼容(鉴于最后一次更新是2015年)。

# gem 'select2_simple_form' 

我的目标是做一个表单输入字段,用户可以通过选择标记的模型可用5个预定义的标签完成。

我试过在this post提出的解决方案和这篇文章,我已经尝试了这个文档流中的每个例子。我不能让他们任何工作。

在我的application.js,我有:

//= require select2 

我也尝试过每一种:

// $(document).ready(function() { 
// $(".js-example-basic-multiple-limit").select2({ 
// maximumSelectionLength: 2 
// }); 
// 
// }); 

$(document).ready(function() { 
    $('.multiple-input').each(function() { 
    $(this).select2({ 
     tags: true, 
     tokenSeparators: [','], 
     theme: 'bootstrap', 
     placeholder: 'Separated by comma' 
     }); 
    }); 
}); 

$(document).ready(function() { 
    $('.input-row #proposal_randd_field_list, .input-row #proposal_randd_field_list').select2({tags:[]}) 
}); 

我不能让这个在所有的工作。当我检查谷歌控制台 - 我没有得到任何JS错误,但我也没有得到一个工作选择2功能。我可以用简单的形式从下拉菜单中选择普通的方式。

我的目标是让我的Randd :: Field模型(它具有一个名为title的属性;这些标题是提案模型上的标签,并存储在该提案模型的randd_field_list中)的内容可作为可搜索,如下所示的下拉列表here(在加载远程数据的标题下)。

有谁知道如何使用简单的形式在轨道中实现这一点。这些文件根本没有排队。

我现在的尝试是:

<%= f.collection_select :randd_field_list, Randd::Field.order(:title), :title, :title, {:selected => @proposal.randd_field_list, :include_blank => true}, input_html: {:class => 'multiple-input', :multiple => true} %> 

以上不允许我选择多个标签(启用了的application.js功能的任何变化)。

我也曾尝试:这些工作

<!-- <select class="js-example-basic-multiple" multiple="multiple"> --> 
<!--<input type="hidden" id="ajax-example" /> --> 

<%#= f.label :randd_field %> 
<%#= f.collection_select :randd_field_list, Randd::Field.order(:title), :title, :title, input_html: { class: 'multiple-input', multiple: "multiple" } %> 

<%#= f.collection_select :randd_field_list, Randd::Field.order(:title), :title, :title, {:selected => @proposal.randd_field_list, :include_blank => true} %> 
<!-- </select> --> 
    <!-- <select class="js-example-basic-multiple" multiple="multiple"> --> 
    <!-- <option value="AL">Alabama</option> 
    <option value="WY">Wyoming</option> 
</select> --> 
     <%#= f.text_field :randd_field_list, input_type: "textbox", name:"proposal[randd_field_list][]", html_options: { style: 'width: 100%' } %> 
     <%#= f.collection_select :randd_field_list, Randd::Field.order(:title), :title, :title, {} %> 
     <%#= f.input 'randd_field_list', 
     options_from_collection_for_select(@randd_fields, :title, :title), 
     multiple: true %> 
     <%#= f.collection_select 'randd_field_list', 
     options_from_collection_for_select(@randd_fields, :title, :title), 
     multiple: true %> 
     <%#= f.input :randd_field_list,:collection => @randd_fields,:label_method => :title,:value_method => :title,:label => "Fields" ,:include_blank => false, :multiple => true %> 

无。

回答

0

我跑过你的帖子寻找一些Rails 5更新信息。我是一个新手,但我正在努力解决太多小宝石的问题。我想知道你是否不应该放弃select2,只用simple_form做你需要的东西?只是一个想法,因为我不知道如何处理标签,因为你正在尝试做。

祝你好运。

+0

我真的放弃了铁轨。我正在学习反应。有很多关于rails/jquery的东西看起来已经过时并且不受支持。经过4。5年的努力,我才得以学习。无论如何感谢提示,但我放弃了轨道和jQuery。 – Mel

+0

@梅尔。祝你好运。我对React的快速阅读是,它不是一个完整的解决方案。 – Greg

+0

不 - 我现在要用rails后端来使用它。 – Mel