我正在寻找一种方法来选择grouped_collection_select的第一条记录,或者在第一个选择中显示" ALL"。
<%= f.collection_select :marque_id, Marque.all, :id, :name_upper, :include_blank => 'ALL', :prompt => 'Mark' %>
<%= f.grouped_collection_select :modele_id, Marque.all, :modeles, :name_upper, :id, :name_upper, :prompt => 'Model', :include_blank => 'ALL' %>
":include_blank => 'ALL' "对collection_select工作正常,但对grouped_collection_select则不行。
对于grouped_collection_select,它首先只显示一个空白字段。
我试图在数据库中放一个空白记录,或者用很多符号在数据库中放"ALL",比如:"#ALL #"......不适用于数字(147、156、159 [...]、# 全部 #,...)
编辑:
或者,也许我可以在每个子类别中添加一个字段,并定义"第一个"?但我想按"名称 ASC"保持所有内容的排序。
我已经把
default_scope order('name ASC')
在我的模型中
我找到了如何做我想做的事。
我只需要添加
$('#search_modele_id').preprend('<option value="" selected="selected">ALL</option>');
到我的jQuery代码中,并将值设置为" BLANK"(在我的情况下非常重要)。
并把
:include_blank => true
而不是
:include_blank => 'ALL'
在搜索表单中
问题解决了。
无论如何,谢谢!