【发布时间】:2016-04-13 01:28:32
【问题描述】:
以下是我获取国家和城市列表的查询:
@countries_cities = Product.joins(:user).where("country is not null and country <> ''").where("city is not null and city <> ''").where(:users => {:merchant_status => 1}).group(:country, :city).select("country,city").as_json
输出结果如下:
Object[city:"Bangkok",country:"Thailand"],Object[city:"Phuket",country:"Thailand"],Object[city:"Malaysia",country:"Kuala Lumpur"],Object[city:"Malaysia",country:"Penang"],Object[city:"Shanghai",country:"China"],Object[city:"Beijing",country:"China"]
cchs = @countries_cities.group_by{|cc| cc["country"]}
@search_location_country = cchs
而观点是:
<ul id="color-dropdown-menu" class="dropdown-menu dropdown-menu-right" role="menu">
<% @search_location_country.each do |country, cities| %>
<li class="input" style="background:#ECECEC; "><a href="#" style="font-weight: bold;"><%= country.upcase %></a></li>
<% cities.each do |city| %>
<li class="input"><a href="#"><%= city["city"].titleize %></a></li>
<% end %>
<% end %>
</ul>
现在下拉结果遵循以下模式:
Thailand
-Bangkok
-Phuket
Malaysia
-Kuala Lumpur
-Penang
China
-Beijing
-Shanghai
如何确保Malaysia 始终位于下拉列表的顶部?谢谢!!
【问题讨论】:
-
您使用的是什么 SQL? MySQL、Postgre?
-
@magni- 我正在使用 Postgres
标签: ruby-on-rails ruby