Ruby on rails RubyonRails有点不起作用
我的数据库显示正常,但排序不起作用 在我的控制器中,我将索引定义为Ruby on rails RubyonRails有点不起作用,ruby-on-rails,sorting,Ruby On Rails,Sorting,我的数据库显示正常,但排序不起作用 在我的控制器中,我将索引定义为 def index @player = Roster.sorted end 在我的“花名册”模型中我有 scope :sorted, -> { order("xoi DESC") } 我把“xoi”定义为 def xoi 传球+跑动 结束您不能按照Ruby中添加的方法进行排序。相反,您可以执行以下操作: scope :sorted, -> { select('*, (passing + running) as
def index
@player = Roster.sorted
end
在我的“花名册”模型中我有
scope :sorted, -> { order("xoi DESC") }
我把“xoi”定义为
def xoi
传球+跑动
结束您不能按照Ruby中添加的方法进行排序。相反,您可以执行以下操作:
scope :sorted, -> { select('*, (passing + running) as xoi').order('xoi DESC') }
当然,前提是您的
passing
和running
属性是DB中的列 xoi需要定义为数据库中的一列,才能工作。
这里,xoi是在ruby方法中定义的,因此您不希望通过数据库进行排序,而是希望通过ruby对集合进行排序,为此,您可以使用sort_,例如:
@player = Roster.all
@player.sort_by(&:xoi)
您的
xoi
将无法在范围内工作,如果您在条件中定义了以下内容,则它应该是数据库中的列:
scope :sorted, -> { order("passing + running") }
Roster.sorted.reverse
@cwayne2有用吗?是的!我爱你!你赢了!我会给你金银的!说真的…现在我明白了这个社区的力量,非常感激。祝你好运。