Rails 5,带有 Select2-rails 的简单表单
Posted
技术标签:
【中文标题】Rails 5,带有 Select2-rails 的简单表单【英文标题】:Rails 5, Simple Form with Select2-rails 【发布时间】: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 %>
这些都不起作用。
【问题讨论】:
【参考方案1】:我在寻找一些 Rails 5 更新信息时遇到了您的帖子。我是新手,但我正在努力解决太多小宝石的问题。我想知道您是否不应该放弃select2
并仅使用simple_form
做您需要的事情?只是一个想法,因为我不知道如何处理你想要做的标签。
祝你好运。
【讨论】:
我实际上放弃了 Rails。我正在学习反应。关于 rails/jquery 的很多东西似乎已经过时且不受支持。经过 4.5 年的尝试,我只是无法学习。无论如何感谢您的提示,但我放弃了 Rails 和 jQuery。 @Mel。祝你好运。我对 React 的快速阅读是它不是一个完整的解决方案。 不 - 我现在将它与 rails 后端一起使用。以上是关于Rails 5,带有 Select2-rails 的简单表单的主要内容,如果未能解决你的问题,请参考以下文章
如何将 select2-rails 与 simple_form 一起使用?
Rails 5 和 select2 错误,select2 不是函数
如何在 BackboneForms 架构中初始化 rails-select2 的选择?