找到方法找不到在轨道上的红宝石应该是什么

时间:2013-04-21 22:42:28

标签: ruby-on-rails activerecord

我从ActiveRecord find方法获得了最奇怪的行为。我试图通过updated_at日期找到一条记录,但它正在返回[]。 这是代码:

      @updated = get_current_user.ideas.all(:conditions => {:updated_at => '2013-04-20 03:30:34'})

这是应该返回的记录:

 #<Idea id: 3, title: "An app that tracks useage", status: "prototype", user_id: 1, updated_at: "2013-04-20 03:30:34"

我让它工作了2秒,然后,什么都没有。问题似乎是它与updated_at属性不匹配。它只返回空数组。 有谁知道为什么它不起作用?

3 个答案:

答案 0 :(得分:1)

您的用户是否与想法有关联?从你的记录,我没有看到用户ID。我做了同样的查询,我可以找回答案。此外,您可以检查get_current_user是否正确。

答案 1 :(得分:1)

试试这个:

@updated = get_current_user.ideas.where(:updated_at => '2013-04-20 03:30:34').all

似乎所有(:conditions =&gt;'')都很难记住,并且会在较新的rails版本中弃用。我不确定。无论如何,我更喜欢'where'方法而不是'all'。

答案 2 :(得分:0)

所以问题是我忘了日期时间实际上是一个日期时间,并试图将它与字符串进行比较。这不起作用。谢谢大家帮忙