Ruby on rails 排序在rails 3中有很多关系

Ruby on rails 排序在rails 3中有很多关系,ruby-on-rails,activerecord,has-many,Ruby On Rails,Activerecord,Has Many,我的模型是 class Job < ActiveRecord::Base belongs_to :client end class Client < ActiveRecord::Base has_many :jobs end 一切都好。但如果我加上订购: @client = Client.find(params[:id], :include => {:jobs => :status}, :order => 'job.level DESC') //

我的模型是

class Job < ActiveRecord::Base
    belongs_to :client
end

class Client < ActiveRecord::Base
   has_many :jobs
end
一切都好。但如果我加上订购:

@client = Client.find(params[:id], :include => {:jobs => :status}, :order => 'job.level DESC')
//:order是动态设置的(本例中没有)-我知道:中的order有很多

结果只有3行(对于每个job.level 1)。我记录了sql查询并执行了它,结果还可以,但在应用程序中我只有这3行。
什么是正确的工作分类方法?谢谢

您可以尝试直接在模型中而不是控制器中指定订单

class Job < ActiveRecord::Base
  belongs_to :client, :order => 'level DESC'
end

而不是您发布的代码中使用的单个job.level?

这不是我最初想要的,但它可以工作,所以这就是答案

@jobs = @client.jobs.find(:all, :order => sort_column + " " + sort_direction)

但如果排序依赖于url参数,那么在模型中指定:order没有帮助。SQL:选择。。。从“作业”上的“客户端”左外部联接“作业”。“客户端ID”=“客户端”。“状态”上的“客户端ID”左外部联接“状态”。“作业状态”=“作业”。“作业状态”中的“客户端”。“客户端ID”=2和“客户端”。“客户端ID”按作业级别的(2)顺序排列
class Client < ActiveRecord::Base
  has_many :jobs, :order => 'level DESC'
end
:order => 'jobs.level'  
@jobs = @client.jobs.find(:all, :order => sort_column + " " + sort_direction)