我使用带有ajax排序的will_paginate并看到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:模糊列名:name:SELECT“cars”。“id”AS t0_r0,“cars”。“name”AS t0_r1,“cars”。“model_id”AS t0_r2,“cars”。“ city_id“AS t0_r3”,“cars”。“created_at”AS t0_r4,“cars”。“updated_at”AS t0_r5,“cars”。“engine_id”AS t0_r6,“引擎”。“id”AS t1_r0,“引擎”。“名称“AS t1_r1”,引擎“。”created_at“AS t1_r2”,引擎“。”updated_at“AS t1_r3 FROM”cars“INNER JOIN”引擎“ON”引擎“。”id“=”cars“。”engine_id“< strong> ORDER BY name asc LIMIT 5 OFFSET 0
但是当我进入已经排序的页面时,它对我有用。
我认为SQL中的默认顺序错误。
如何设置'cars.name'而不是'name'?
答案 0 :(得分:0)
我找到了方法并设置了排序默认值
private
def sort_column
Car.column_names.include?(params[:sort]) ? params[:sort] : "cars.name"
end