【发布时间】:2017-07-25 17:26:41
【问题描述】:
我试图弄清楚如何在我的 rails 5 应用程序中使用带有简单表单的 select2。
我在应用程序中使用作为可标记的行为。
我已经在我的 gem 文件中安装了这个 gem:
gem 'select2-rails'
我试图在我的 gemfile 中安装这个 gem,但是我得到一个错误,说它找不到。我想知道它是否与 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 所示(在标题加载远程数据下)。
有谁知道如何使用简单的形式在 Rails 中实现这一点。文件根本没有对齐。
我目前的尝试是:
<%= 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 %>
这些都不起作用。
【问题讨论】:
标签: jquery ruby-on-rails ruby jquery-select2 simple-form