ruby-on-rails 使用Rails模型中定义的方法对结果排序

tuwxkamq  于 2023-02-26  发布在  Ruby
关注(0)|答案(1)|浏览(207)

我有一个users表和一个contracts表,它们之间的关系如下:
user.rb

has_many :contracts

def current_year_contracts
 total = 0
 contracts.where('entry_date >= ?', Date.current.beginning_of_year).each do |entry|
   total += entry.total_number.to_f
 end
 total
end

contract.rb

belongs_to :user, optional: true

我在这里面临的问题是如何使用current_year_contracts对用户进行升序或降序排序。

@users = User.all.order(users.current_year_contracts "#{direction}")

方向可以是升序或降序。

b4wnujal

b4wnujal1#

如果Ruby中的排序正常,则可以运行以下代码:

@users = User.all.sort{|a,b| a.current_year_contracts <=> b.current_year_contracts}

如果您需要SQL排序,我们需要知道使用的是什么数据库服务器。

相关问题