1

所以我有这些模型:

class b
  :field boolean, :type => Boolean
end

class c
  embeds_many :a
end

class a
  belongs_to :b
  scope :sort_by_boolean, order_by(:b.boolean => :asc)
end

我尝试做类似的事情,但这是不可能的。还有其他方法可以订购吗?我能想到的另一件事是循环遍历它并创建两个不同的数组,一个布尔值为真,另一个为假,并将两者结合起来。但是有没有更简单的方法?

4

1 回答 1

0

我最终以循环方式进行操作,但如果有更简单的方法,我会更喜欢:

class c
  def sort
    not_true = []
    is_true = []
    self.a.each { |x|
      if x.b.boolean
        is_true.push x
      else
        not_true.push x
      end
    }
    not_true + is_true
  end
end
于 2013-04-19T16:02:36.007 回答