投稿のインデックスを並べ替えようとしています。
各提出物has_one :score
とスコアbelongs_to :submission
の提出物belongs_to :contest
とコンテストhas_many :submissions
ソートしたい行はsubmission.score.subtotal
submissions>indexにあります
私はこれを試しました:
@submissions = submission.find(:all, :include => :score).sort_by { |s| s.scores.sub_total }.paginate(:per_page => 10, :page => params[:page])
コンテスト 1 のすべての提出物にスコアを割り当てましたが、コンテスト 1 の提出物 > インデックス (params を介して割り当てられたもの) を表示しようとすると、エラーが発生します:
NoMethodError at /submissions
undefined method `sub_total' for nil:NilClass
どこかで nil をチェックする必要があると確信していますが、それがどこにあるかがわかりません。
詳しくは:
def index
contest_id = params[:contest_id]
@contest = Contest.find(contest_id)
submission = Submission.where(:contest_id => params[:contest_id])
if params[:search].blank?
@submissions = submission.find(:all, :include => :score).sort_by { |s| s.score.sub_total }.paginate(:per_page => 10, :page => params[:page])
else
@submissions = submission.search(params[:search]).paginate(:per_page => 10, :page => params[:page])
end
@search = params[:search]
end