0

这可能是未回答的Select2-rails 将数据传递到表单字段的变体

我在表单中有一个字段 barrister_id

<%= form_for(@mail) do |f| %>
  ...
  <div class="field">
    <%= f.label :barrister_id %><br />
    <!-- %= f.collection_select :barrister_id, Barrister.all, :id, :code_and_name % -->
    <% @barristers = Barrister.all %>
    <%= select_tag :barrister_id,   options_from_collection_for_select(@barristers,
      :id,:code), id: "barristerselect"%>
  </div>

application.html.erb 将其链接到 javascript Select2 gem,因此:

<script>
  $(document).ready(function() { $("#barristerselect").select2(); });
</script>

这可以给我花哨的 Select2 下拉值。

但是字段值 barrister_id 仅在 params.barrister_id 中返回,而不是在 params.mail.barrister_id 中的预期,因此输入的值无法验证为空白。

如图所示,我更喜欢使用 f.collection_select 作为选择框,但无法让 Select2 很好地使用它。

有什么想法吗?

4

2 回答 2

1

首先,您应该在这种情况下使用 f.select 。使用 select_tag 你需要这样做

<%= select_tag "mail[barrister_id]",   options_from_collection_for_select(@barristers,
  :id,:code), id: "barristerselect"%>

如果您使用的是 f.select,请使用它。注意空的花括号。那是因为 html_options 是 f.select 助手的第四个参数。在此处查看文档。

<%= f.select :barrister_id, options_from_collection_for_select(@barristers,
  :id,:code), {}, id: "barristerselect" %>
于 2014-04-03T06:48:52.687 回答
0

这是因为您更改了选择控件的 id。尝试将 id 更改为 mail_barrister_id(由 select_tag 助手生成的默认 id)。还应该在select2的java脚本中更改id

于 2014-04-03T06:11:47.543 回答