1

我正在使用 select2-rails gem,并希望让 select2 在我的多选字段上工作,artist_ids就像它在这个 all-js 示例中所做的那样。这是我的 erb 文件现在的样子。添加js脚本没有产生任何效果,表单仍然以相同的方式加载。

<%= form_for @event, url: {action: "create"}, html: {class: "nifty_form"} do |f| %>
  <%= f.text_field :name %><br />
  <%= f.datetime_select :date %><br />
  <%= f.text_area :description, size: "60x12" %><br />
  <%= f.select(
    :venue_id,
    options_from_collection_for_select(Venue.all, "id", "name")
  ) %>
  <%= f.collection_select :artist_ids, Artist.all, :id, :name, {:selected => @event.artist_ids, include_blank: true}, {multiple: true} %>
  <br />
  <%= f.submit "Create" %><br />

    <% content_for :js do %>
    <script type="text/javascript">
    $(document).ready(function() {
        $('#event_artist_ids').select2();
    });
    </script>
    <% end %>
<% end %>

我按照文档中的说明遵循了添加 select2 的所有常用程序。//= require select2在 application.js 和*= require select2application.scss中添加了行*= require select2-bootstrap

更新:

在 Prashant Ravi Darshan 的建议之后,看起来 select2 已经开始工作,尽管有错误。现在选择艺术家是两个混乱的领域

在此处输入图像描述

4

2 回答 2

4

请试试这个

<%= f.select(:artist_ids, Artist.all.collect {|a| [a.name, a.id]}, {}, id: "event_artist_ids", :multiple => true) %>

<script type="text/javascript">
    $( "#event_artist_ids" ).select2();
</script>
于 2016-08-17T07:50:39.730 回答
3

似乎在 Stackoverflow 上工作的 Select2 的每个示例都是通过 simple_form_for。有些人表达了 form_for 将不起作用的情绪,因为 select2 不接受 f.select... 我花了几个小时弄清楚如何让我的工作以及我打开的所有主题,我不记得任何使用 form_for 获得在任何地方,当人们切换到 simple_form_for 时,他们就成功了。

于 2016-07-13T03:44:20.243 回答