Rails - sql命令不能与datetime一起使用

时间:2015-08-10 17:23:35

标签: mysql ruby-on-rails

我的网络应用程序出现了一个奇怪的问题。

我正在尝试为“逃离房间”等游戏构建一个简单的预订系统。现在我制作了自己的日历,看起来是一个有关日期的轨道广播(日历修订版)。

在可能的时间内,我在数据库中创建了一个新模型和一个新表

t.integer "id"
t.datetime "start_time"
t.datetime "end_time"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false

在视图中我有这样的事情:

<%= calendar @date do |date| %>
<%= date.day %>
<table class="table">
<tbody>
  <% @hours.each_slice(2) do |hour| %>
  <tr>
    <% hour.each do |h| %>

    <td>

      <%= link_to h.start_time.strftime('%H:%M'), new_escape_path(date: date, start_time: h.start_time.strftime('%H:%M'), end_time: h.end_time.strftime('%H:%M')) %>
    </td>

    <% end %>
  </tr>
<% end %>
</tbody>
</table>
<% end %>

我将这些参数写入数据库,以用户可以手动完成其他字段的形式传递它们:

<%= text_field_tag :date, params[:date] %><br>
<%= text_field_tag :start_time, params[:start_time] %> do 
<%= text_field_tag :end_time, params[:end_time] %>

问题是在视图中我只想显示尚未保留的小时数,这意味着它们不在转义表中。 在控制台中我写

Escape.all

我有类似的东西:

#<Escape id: 1, date: "2015-08-11 00:00:00", start_time: "2015-08-10 08:30:00", end_time: nil, user_id: nil, created_at: "2015-08-10 15:26:14", updated_at: "2015-08-10 15:26:14">

但是当我写

Escape.all.where(date: "2015-08-11 00:00:00")

它返回一个空记录

#<ActiveRecord::Relation []>

我还尝试在视图中插入这样的内容,但它不起作用:

 <% if Escape.where(["date = ? and start_time = ?", "#{date}", "#{h}"])%>
      <%= h.start_time.strftime('%H:%M') %>
 <% else %>
      <%= link_to h.start_time.strftime('%H:%M'), new_escape_path(date: date, start_time: h.start_time.strftime('%H:%M'), end_time: h.end_time.strftime('%H:%M')) %>
 <% end %>

你有什么想法吗?我做错了什么?

0 个答案:

没有答案