【发布时间】:2015-02-20 02:23:06
【问题描述】:
class Foo < ActiveRecord::Base
has_many :bar
end
class Bar < ActiveRecord::Base
belongs_to :foo
end
我想根据最后一个 :bar 订购我的 :foos...
那么,让我们说:
Foo.first.bars => [{key: 'a', value: 1}, {key: 'b', value: 2}, {key: 'c', value: 3}]
所以...Foo.first.bars.last.value => 3
我有一堆 :foo,每个都有一堆 :bar,但我只关心最后一个 :bar。
我可以根据最后一个 :bars value 对我的 :foos 进行排序吗? Bar 需要作用域吗?
比如……
Foo.includes(:bars).order('bars.last.value')
【问题讨论】:
-
不清楚你想做什么。
-
我有一个 :foos 的表。我希望能够根据每个 :foo 的最后一个 :bar 的值对它们进行排序。我很肯定范围会在某个地方工作,但我还没有弄清楚。我可以通过使用可枚举...
Foo.all.sort_by(&:some_method)来实现我所追求的目标,其中some_method正在计算最后一个:bar 的value。这样就清楚了吗? -
我的问题是,可枚举很慢...
-
做了类似的帮助 -- stackoverflow.com/questions/9197649/…
标签: mysql sql ruby-on-rails ruby activerecord