2013-01-04 29 views
-1

我有問題排序列。我有一張填充了數據的表格,它的組織方式爲DESC。我想這樣做,當點擊其中一列時,它將在ASCDESC之間來回切換。列上的排序表點擊

當我點擊一個特定的列,分別被送往這些參數:

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) 

回答

1

您是否希望在Rails或瀏覽器中進行排序?

由於瀏覽器已經有了這些數據,所以有很好的理由要在頁面中的JavaScript中進行排序。用戶的體驗會更好/更快,並且不會讓Rails和託管硬件和數據庫承受其他請求的負擔。

jQuery和其他JavaScript庫有很多JavaScript插件可以很容易地實現這一點。

+0

這似乎是一個更好的選擇,我對jquery和js有一定的瞭解。 – zillaofthegods