在Rails 3中查找与日期时间匹配的记录

时间:2011-02-10 04:10:13

标签: ruby ruby-on-rails-3

我有一个存储条目和日期的数据库(除了created_at和modified_at)。我还有一个循环,它会显示前10天的日期。循环看起来像这样:

<ol>
    <% Date.today.downto(Date.today - 9.days) do |date| %>
        <li>
            <%= link_to date.strftime("%A, %B %e"), new_entry_path + date.strftime("/%Y/%m/%d") %>
        </li>
    <% end  %>
</ol>

如果数据库中不存在该日期的条目,那么我正在尝试完成并且失败的唯一方法是显示上面的链接。如果确实存在,我会显示Entry.title。我尝试了以下内容,但它不起作用:

<%= link_to date.strftime("%A, %B %e"), new_entry_path + date.strftime("/%Y/%m/%d") unless Entry.find_by_date(date) %>

我已经尝试过各种各样的.finds和.wheres,但没有任何效果。请,任何帮助将不胜感激。谢谢!

2 个答案:

答案 0 :(得分:0)

我建议,使用控制台并测试Entry.find_by_date(Date.today)Entry.find_by_date(Date.today - x)是否找到了您应该找到的记录。

在您的数据库中,日期是作为日期存储还是作为日期和时间存储? '2011-02-12'不等于'2011-02-12 11:16:05'。也许这就是问题?

答案 1 :(得分:0)

我同意Arsen7。请检查 date 列的类型。我也怀疑它被声明为 datetime 而不是 date