2012-11-28 78 views
0

我使用will_paginate和ajax排序,並看到railscasts.com。 http://railscasts.com/episodes/240-search-sort-paginate-with-ajax如何組織默認訂單分頁?

我收集分頁

@cars = Car.joins(:engine).includes(:engine).select('cars.*, engines.*').order(sort_column + " " + sort_direction).paginate(:page => params[:page], :per_page => 5) 

但是當我去索引頁,我跳下錯誤。

ActiveRecord::StatementInvalid in Items#index 

的SQLite3 ::的SQLException:不明確的列名:名:選擇 「汽車」, 「ID」 AS t0_r0, 「汽車」, 「名」 AS t0_r1, 「汽車」, 「MODEL_ID」 AS t0_r2「汽車「。」city_id「AS t0_r3,」cars「。」created_at「AS t0_r4,」cars「。」updated_at「AS t0_r5,」cars「。」engine_id「AS t0_r6,」engines「。」id「AS t1_r0,」 「t1」,「引擎」,「引擎」,「引擎」,「引擎」,「引擎」,「引擎」,「引擎」。 「engine_id」ORDER BY名稱 asc LIMIT 5 OFFSET 0

但是,當我去一個已經排序的頁面,它適用於我。

我認爲SQL中的默認順序錯誤。

如何設置'cars.name'而不是'name'?

+0

請出示你設置的默認排序字段代碼。你在哪裏設置'sort_column'? – Mischa

+0

我從railscasts複製代碼http://railscasts.com/episodes/240-search-sort-paginate-with-ajax –

+0

sort_column在一個地方使用,我最初無法確定。 –

回答

0

我找到方法,並設置默認排序

private 



def sort_column 
    Car.column_names.include?(params[:sort]) ? params[:sort] : "cars.name" 
    end