我可以根据餐厅 ID 从表中获取行列表。例如
SELECT id, start_time, end_time, day FROM restaurant_timings WHERE restaurant_id = 2
输出看起来像
1 6:00am 7:00pm Sunday
2 6:00am 5:00pm Monday
3 6:00am 4:00pm Tuesday
4 6:00am 7:00pm Wednesday
5 6:00am 9:00pm Thursday
6 6:00am 6:00pm Friday
7 6:00am 7:00pm Saturday
这些结果在数组@timings 中返回。现在,在前端,我想根据当天显示这些结果。话虽如此,如果今天是星期三,那么我需要在顶部显示星期三,之后是所有其他日子。我正在使用循环来执行此操作。这是循环代码:
<% @timings.each do |val| %>
<tr>
<td><%= val['day_name'] %></td>
<td>
<div class="form-group">
<div class='input-group date datetimepicker1' id='datetimepicker1'>
<input type='text' class="form-control editabletext" name="openingtime[]" value="<%= if val['opening_time'].present? then val['opening_time'].strftime("%m/%d/%Y %I:%M %p") end %>" readonly/>
<span class="input-group-addon"><span class="glyphicon glyphicon-calendar icon-calendar"></span>
</span>
</div>
</div>
</td>
</tr>
<% end %>
我应该/可以修改 SQL 查询以不使前端代码变得复杂吗?关于如何执行此操作的任何想法?
最佳答案
在这种特殊情况下修改后端代码更容易:
@timings = ActiveRecord::Base.connection.execute %|
SELECT id, start_time, end_time, day
FROM restaurant_timings
WHERE restaurant_id = 2|
until Date.today.public_send("#{@timings.first.day.downcase}?") do
@timings.rotate!
end
或者,甚至更好:
@timings.rotate!(Date.parse(@timings.first.day).wday - Date.today.wday)
关于mysql - 在顶部显示当前日期的值,然后是其他日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41952120/