提问人:Unusualslim 提问时间:5/18/2022 更新时间:5/23/2022 访问量:86
对于大型数据集,更好的collection_select方法是什么?
What is a better way of collection_select for large datasets?
问:
目前,我有一个拥有 100+ 条记录的模型。我有第二个模型,has_one第一个模型。在创建第二个模型的表单中,我使用collection_select调用第一个模型。用户最终必须滚动并浏览每条记录。是否有可搜索的collection_select或其他表单帮助程序可以使这种体验更好?以下是我目前的解决方案:
<%= form.collection_select :thing_id, Thing.all, :id, :name, {class: "form-control"} %>
_form.html.erb
<%= form_with(model: order) do |form| %>
<% if order.errors.any? %>
<div style="color: red">
<h2><%= pluralize(order.errors.count, "error") %> prohibited this order from being saved:</h2>
<ul>
<% order.errors.each do |error| %>
<li><%= error.full_message %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="form-group">
<%= form.label 'Status:' %>
<%= form.collection_select :order_status_id, OrderStatus.all, :id, :status, @order.persisted? ? {class: "form-control"} : {:selected => 1}, {class: "form-control"} %>
</div>
<div>
<%= form.label :subject, style: "display: block" %>
<%= form.text_field :subject %>
</div>
<div>
<%= form.label :body, style: "display: block" %>
<%= form.text_area :body %>
</div>
<div>
<%= form.label 'Asset:' , style: "display: block" %>
<%= form.collection_select :thing_id, Thing.all, :id, :name, {class: "form-control"} %>
</div>
<div class="form-group">
<%= form.label :assigned_to %>
<%# form.collection_select :assigned_to_id, User.all, :id, :email, {:include_blank => true}, {class: "form-control"} %>
<%= form.collection_select :assigned_to_id, User.all, :id, :email, {:prompt => true}, {class: "form-control"} %>
</div>
<div class="mb-3">
<%= form.label :images, class: "form-label" %>
<%= form.file_field :images, {multiple: true, class: "form-control", id: "formFileMultiple", type: "file"} %>
</div>
<%= form.hidden_field :requested_by_id, value: current_user.id %>
<div>
<%= form.submit %>
</div>
<% end %>
如果需要,我很乐意包含任何其他代码。
答:
0赞
Abdul Basit
5/23/2022
#1
您可以使用 select2 Select2 是下拉框的 jQuery 替代品,它包含一个搜索框,用于过滤数据和其他功能,例如延迟加载下拉选项。看看这个 https://select2.org/getting-started/basic-usage
评论