0

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

 Account.where(:user_id => @user)

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

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

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

4

1 回答 1

4

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

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

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

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

@user.accounts.default_first.all
于 2012-09-08T21:33:48.337 回答