ruby-on-rails – Grouped Collection选择按字母顺序排列的Rails
发布时间:2020-12-17 01:47:40 所属栏目:百科 来源:网络整理
导读:我终于想出了如何使用 this tutorial实现动态选择菜单. 一切正常,但是如何按名称组织下拉列表中的城市…. 以下是我写的所有代码. (如果您需要任何进一步的信息,请告诉我) 新的铁路请帮助:) VIEWS %= simple_form_for ([@book,@rating]) do |f| % div class="
我终于想出了如何使用
this tutorial实现动态选择菜单.
一切正常,但是如何按名称组织下拉列表中的城市…. 以下是我写的所有代码. (如果您需要任何进一步的信息,请告诉我) 新的铁路请帮助:) VIEWS <%= simple_form_for ([@book,@rating]) do |f| %> <div class="field"> <%= f.collection_select :state_id,State.order(:name),:id,:name,{:include_blank=> "Select a State"},{:class=>'dropdown'} %> </div> ### I would like the order of the cities displayed in the drop down to be alphabetized <div class="field"> <%= f.grouped_collection_select :city_id,:cities,{:include_blank=> "Select a City"},{:class=>'dropdown'} %> </div> <% end %> 解决方法
选项1:在您的城市模型中,添加一个
default scope,指示按字母顺序返回的城市:
# app/models/city.rb default_scope :order => 'cities.name ASC' 默认情况下,City对象的集合将按名称的字母顺序返回. 选项2:在State模型中定义一个named scope,它按字母顺序返回城市作为State对象的关联: # app/models/state.rb scope :cities_by_name,-> { cities.order(name: :asc) } # Rails 4 scope :cities_by_name,cities.order("name ASC") # Rails 3 然后,将您的范围查询传递给您的grouped_collection帮助器: f.grouped_collection_select :city_id,:cities_by_name,{:class=>'dropdown'} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |