0

私のモデルは

class Job < ActiveRecord::Base
    belongs_to :client
end

class Client < ActiveRecord::Base
   has_many :jobs
end

コントローラーで、並べ替えられたジョブでクライアントを取得したい。もしそうなら(注文せずに)

@client = Client.find(params[:id], :include => {:jobs => :status})

それはすべて大丈夫です。しかし、順序を追加すると:

@client = Client.find(params[:id], :include => {:jobs => :status}, :order => 'job.level DESC')

// :order は動的に設定されます (この例ではありません) - has_many の :order について知っています。

結果は 3 行のみです (job.level one ごとに)。SQLクエリをログに記録して実行したところ、結果は問題ありませんでしたが、アプリにはこれらの3行しかありません。仕事の正しい振り分け方とは?ありがとうございました

4

2 に答える 2

0

これは私が最初に望んでいたものではありませんが、うまくいくので、これが答えです

@jobs = @client.jobs.find(:all, :order => sort_column + " " + sort_direction)
于 2012-06-28T10:10:07.083 に答える
0

コントローラーの代わりにモデルで直接注文を指定してみることができます

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

また

class Client < ActiveRecord::Base
  has_many :jobs, :order => 'level DESC'
end

また、Jobs モデルのレベルはどのデータ型ですか? 同様に役立つSQLクエリのログを投稿できれば。また、試してみましたか

:order => 'jobs.level'  

投稿したコードで使用されている単数形の job.level の代わりに?

于 2012-06-22T14:43:23.817 に答える