Rails Select2 字段未返回到表单中



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

我有一个表单中的字段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>

应用程序.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 很好地使用它。

伙计们有什么想法吗?

首先,在这种情况下,您应该使用 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" %>
这是因为

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

相关内容

  • 没有找到相关文章

最新更新