2015-04-12 145 views
0

我想通過使用link_to對視圖中的數組進行排序,但是我沒有得到結果的任何更改。對數組進行排序

的觀點 -

= link_to 'Rating', sort: "rating" 
= link_to 'Origin', sort: "origin" 
= link_to 'Meal Time', sort: "meal_time" 

控制器 -

def index 
    @recipes = Recipe.order(params[:sort]) 
end 
##### 
def sort 
    if (params[:order] == 'rating') 
    @recipes.order('rating') 
    elsif (params[:order] == 'origin') 
    @recipes.order('origin') 
    end 
    respond_to do |format| 
    format.html { redirect_to :index } 
    format.json { render json: @recipe } 
    end 
end 

我缺少的東西?我將ASCIIcast用於可排序表列,因爲它是我發現的最簡單的解決方案。這裏是回購 - https://github.com/luchia/eaten

編輯:正如wurde建議,我不停的Turbolinks創業板並在視圖改變了代碼 -

=link_to('Rating', sort: 'rating', 'data-no-turbolink' => true) 
=link_to('Origin', sort: 'origin', 'data-no-turbolink' => true) 
=link_to('Meal Time', sort: 'meal_time', 'data-no-turbolink' => true) 

但是這會導致一個奇怪的錯誤,這錯誤的屬性沒有的TurboLink現在是一個物理部分URL (image attached)

回答

0

我還是一直無法得到這個工作,並嘗試了一些不同的解決方案,包括不同的寶石。沒有運氣。

1

這可能是Rails turbolinks緩存的一個問題,因爲您正在使用鏈接來「拉」一個新的食譜索引。嘗試刪除turbolinks來驗證。

這裏是一個Railscasts解決方案:Sortable Table Columns
這裏有一個相關的StackOverflow QA:Using turbolinks in a Rails link_to

+0

不幸的是,不幸的是,我刪除了turbolinks寶石,結果仍然沒有改變。可以在[這裏]找到Repo(https://github.com/luchia/eaten) –

+0

嘗試保持gem,並將數據元素添加到link_to。 – wurde

+0

另一個測試是通過鏈接發出ajax請求並檢查返回的內容。 – wurde