如何组织分页中的默认顺序?

时间:2012-11-28 08:45:16

标签: ajax ruby-on-rails-3 activerecord will-paginate

我使用带有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'?

1 个答案:

答案 0 :(得分:0)

我找到了方法并设置了排序默认值

private



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