我正在生成一个中心列表,但由于这些中心是自治市镇的孩子,我想知道如何在视图中按字母顺序对迭代进行排序。
我的代码看起来像这样
<% boroughs.each do |borough|%>
<% if borough.leisure_centres.any? %>
<% borough.leisure_centres.each do |venue| %>
<li class="sitemap-accordion">
<%= link_to venue.title, '#', class: "trigger" %>
<ul class="sitemap-accordion-child">
<li>
<%= link_to "Overview", centre_path(venue) %>
</li>
<li>
<%= link_to 'News', centre_news_index_path(venue) %>
</li>
<li>
<%= link_to 'Facilities', facilities_centre_path(venue) %>
</li>
<li>
<%= link_to 'Contact Us', new_centre_contact_form_path(venue) %>
</li>
<% unless venue.venue_hire_content.nil? %>
<li>
<%= link_to 'Hire', venue_hire_centre_path(venue) %>
</li>
<% end %>
<% unless venue.virtual_tour.nil? %>
<li>
<%= link_to 'Virtual Tour', tour_centre_path(venue) %>
</li>
<% end %>
<% unless venue.custom_pages.nil? %>
<% venue.custom_pages.each do |custom_page| %>
<li>
<%= link_to custom_page.title, centre_custom_page_path(centre_id: venue, id: custom_page.id) %>
</li>
<% end %>
<% end %>
</ul>
<% end %>
</li>
<% end %>
<% end %>
我希望venue.title
按字母顺序排列,我该怎么做?
由于
答案 0 :(得分:2)
你可以像这样将一个块传递给sort_by方法。
<% borough.leisure_centres.sort_by(&:title).each do |venue| %>
答案 1 :(得分:2)
我愿意
Rails 4
class Borough < ActiveRecord::Base
has_many :leisure_centres, -> { order "title asc" }
end
Rails 3
class Borough < ActiveRecord::Base
has_many :leisure_centres, :order => "title asc"
end
所以你要通过SQL排序而不是ruby。