按时间顺序排序

时间:2014-02-19 10:14:13

标签: ruby-on-rails controller sql-order-by

我有一个名为“预订”的数据库表,用户可以选择他们希望预订完成的'time_from'和'time_to'。

将这些字段添加到数据库时,我将它们添加为time_field。

<%= f.label :time_from, "From (24hr Clock)" %>
<%= f.time_field :time_from %>

<%= f.label :time_to, "To (24hr Clock)" %>
<%= f.time_field :time_to %>

表单正常工作并保存,但我的问题是订单。下面是我的控制器代码,随后我的视图显示时间及其输出。有关如何正确订购这些产品的想法吗?

控制器:

def show
    @location = Location.find(params[:id])
    @booking = Booking.order("time_to")
    @company = Company.all
end

查看:

<% 0.upto(11.to_i).each do |day_count| %>
    <span class="col-md-3 booking-times">
        <h4><%= time_tag(Date.today + day_count.days) %></h4>
        <span class="label label-danger no-bookings">No Bookings</span>
        <% @booking.each do |b| %>
            <% if b.date == Date.today + day_count.days && b.type == "Meeting" %>
                <% if b.location == params[:id] %>
            <span class="label label-info booking-time">
                <%= time_tag(b.time_from, :format=>"%H:%M") %> -
                <%= time_tag(b.time_to, :format=>"%H:%M") %>
            </span>
                    <% @company.each do |c| %>
                        <% if c.id == b.company %>
                            <%=link_to c.name, c %></br>
                        <% end %>
                    <% end %>
                <% end %>
            <% end %>
        <% end %>
    </span>
<% end %>

输出:(第一天)

09:30 - 10:30
22:00 - 23:00
07:30 - 08:30

我很欣赏这不是最好看的代码。我希望上面的输出按时间排序。有任何想法吗?我试图在控制器中订购,这会影响布局,但仍然没有正确的顺序。我认为附加到time_to输入的数据可能会影响到ian?谢谢!

2 个答案:

答案 0 :(得分:1)

你试过这个:

@booking = Booking.order(time_to: :desc)

答案 1 :(得分:1)

请你试试这个:

@booking = Booking.order('time_to desc')