创建一个Mysql查询,在另一个之前查找数据(在RoR中)

时间:2010-12-02 21:16:53

标签: mysql ruby-on-rails

我正在向MySql发送此查询

Image.find( :all,
     :conditions => ["created_at > ? && approved = 1", @image.created_at],
                            :order => "created_at DESC", :limit => 5)

但是,我希望图像创建之前创建给定图像。现在,它正在返回列表顶部的图像列表,这些图像在该图像之前创建了很多。我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

您当前的查询会找到比@image更新的图像,因为您使用>。您需要确定您想要查看的范围。您在“之前”考虑的时间范围是什么?分钟?秒?

要查找@image 5分钟内创建的所有图像,请尝试:

Image.find(:all, :conditions => ["(created_at > ? and created_at < ?) and approved = 1", @image.created_at.advance(:minutes => -5), @image.created_at]) 

答案 1 :(得分:0)

我的解决方案感觉更像是黑客攻击,但我不确定是否更好。我设置:order =&gt; “created_at ASC”...然后反转生成的数组,得到我想要的响应。 HRM。