我的数据库显示正常,但排序无效。
在我的控制器中,我将索引定义为此
def index
@player = Roster.sorted
end
在我的"花名册"模特我......
scope :sorted, -> { order("xoi DESC") }
我有" xoi"定义为......
def xoi 传递+跑步 端答案 0 :(得分:0)
您无法按Ruby中添加的方法进行排序。相反,你可以这样做:
scope :sorted, -> { select('*, (passing + running) as xoi').order('xoi DESC') }
当然,您提供的passing
和running
属性是数据库中的列。
答案 1 :(得分:0)
@player = Roster.all
@player.sort_by(&:xoi)
答案 2 :(得分:0)
你的xoi
在范围内不起作用,它应该是数据库中的列如果你定义了内部条件:
scope :sorted, -> { order("passing + running") }
Roster.sorted.reverse