-1

我在对列进行排序时遇到问题。我有一个用数据填充的表,它是用DESC. ASC我想这样做,当单击其中一列时,它将在和之间来回变化DESC

当我单击特定列时,正在发送这些参数:

Parameters: {"search"=>{"meta_sort"=>"date.asc"}}

以及只是进行与最初访问时相同的查询。

这是我的控制器代码:

def dashboard
  @search = Quality.search(params[:search])
  @qualities = @search.page params[:page]

  @qualities_failed = Quality.where('last_disposition_state = ?','fail').order("strftime('%Y',date) DESC, julian_date DESC, lot DESC, time DESC").limit(10).search(params[:search])
  @qualities_passed = Quality.where('last_disposition_state = ?','pass').order("strftime('%Y',date) DESC, julian_date DESC, lot DESC, time DESC").limit(10).search(params[:search])

  respond_to do |format|
    format.html
    format.js
    format.xlsx {
      send_data Quality.order("strftime('%Y',date) DESC, julian_date DESC, lot DESC, time DESC").limit(10).to_xlsx.to_stream.read, :filename => 'passed.xlsx', :type => "application/vnd.openxmlformates-officedocument.spreadsheetml.sheet"
    }
  end
end

我想知道如何获取这些参数,并据我所知,做出一个if声明来评估参数并根据它对表格进行排序。

if -> == ASC then (query with ASC instead of DESC)
4

1 回答 1

1

您希望在 Rails 中还是在浏览器中进行排序?

由于浏览器已经拥有数据,因此有充分的理由认为排序应该在页面内的 JavaScript 中进行。用户的体验会更好/更快,并且您不会因为另一个请求而加重 Rails 和托管硬件和数据库的负担。

有许多用于 jQuery 和其他 JavaScript 库的 JavaScript 插件可以很容易地做到这一点。

于 2013-01-04T16:29:36.630 回答