2015-09-10 43 views
2
Rails 3.2 

我知道如何使用.order方法使用ActiveRecord结果得到的,但我坚持做等价的:用ActiveRecord获得结果 - ActiveRecord的

SELECT * from product ORDER BY case when status = 'new' 

。我尝试了不同的语法组合,并且没有任何例子,据我所知在ActiveRecord API指南中。有任何想法吗?

回答

0

它看起来像你试图订购一个CASE条件。在Rails中,您必须将整个CASE包含在对order的调用中,例如,

Product.order("CASE status WHEN 'new' THEN 0 ELSE 1 END") 
+0

我认为这现在对我有效。我有另一个使用solr的地方。对于solr,它会是order_by,看起来我不能用solr做这样的事情,但是我会把它作为另一个问题发布。 – EastsideDeveloper