Ruby on rails 单击列上的排序表
我在排序列时遇到问题。我有一个用数据填充的表,它是用Ruby on rails 单击列上的排序表,ruby-on-rails,ruby,model-view-controller,Ruby On Rails,Ruby,Model View Controller,我在排序列时遇到问题。我有一个用数据填充的表,它是用DESC组织的。我希望这样,当单击其中一列时,它将在ASC和DESC之间来回更改 当我单击某个特定列时,发送了以下参数: Parameters: {"search"=>{"meta_sort"=>"date.asc"}} 以及进行与最初访问时相同的查询 这是我的控制器代码: def dashboard @search = Quality.search(params[:search]) @qualities = @searc
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)
您希望在Rails中还是在浏览器中进行排序 因为浏览器已经有了数据,所以有很好的理由认为排序应该在页面内的JavaScript中进行。用户的体验会更好/更快,并且您不会因为另一个请求而加重Rails、托管硬件和数据库的负担
jQuery和其他JavaScript库有许多JavaScript插件,可以轻松实现这一点。这似乎是一个更好的选择,我对jQuery和js有一定的了解。