Rails顺序按布尔查找

时间:2012-09-08 21:12:17

标签: ruby-on-rails-3

我在rails 3中有一个简单的查找,可以收集用户帐户。

 Account.where(:user_id => @user)

Account模型有一个'default'布尔字段。当用户添加许多帐户时,我希望默认帐户始终是循环中的第一个。订单似乎不适用于布尔字段。

  Account.where(:user_id => @user, :order => "default DESC")

有没有办法订购查询来处理这个问题,还是应该拆分查询并在单独的查找中找到默认帐户?

1 个答案:

答案 0 :(得分:4)

尝试Account.where(:user_id => @user).order("default DESC") - 在您的:order子句中放置where()不会对结果集进行排序。

更清洁的解决方案可能是添加范围。

scope :default_first, order(arel_table[:default].desc) 

然后你可以打电话(假设你的关系设置正确):

@user.accounts.default_first.all