我对ROR和Postgre都很陌生,现在想实现以下功能遇到了问题。
我有一个Working_hour模型和Merchant模型,其中商家(Merchant)有多个工作时间(working_hours),而每个工作时间(working_hour)都属于某一个商家(Merchant)。同一天内,商家可能会拥有两个或更多的工作时间。
我的视图:
<% @merchant.working_hours.order(:day).group_by(&:day).each do |dia, whs| %>
<%= t(:"date.abbr_day_names")[dia.to_i] %> :
<% whs.each do |wh| %>
<li>
<%= wh.oppening_hour.to_formatted_s(:time) %> -
<%= wh.close_hour.to_formatted_s(:time) %>
</li>
<% end %>
<% end %>
当我按照日期排序查看数据时,检索到的数据是这样的(请注意,开放时间是无序的):
Mon:
17:00-20:00
10:00-13:00
Tue:
18:00-21:00
10:00-13:00
我希望按照星期几进行分组,首先按照星期几排序,其次按照开放时间排序:
Mon:
10:00-13:00
17:00-20:00
Tue:
10:00-13:00
18:00-21:00
但是正如您所看到的,目前我正在使用Ruby层来完成这件事,这会带来性能问题。如何使用数据库层来实现这一点?
default_scope
影响了顺序? - Pavan