我有一个存储条目和日期的数据库(除了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,但没有任何效果。请,任何帮助将不胜感激。谢谢!
答案 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 。