在视图中排序数组

时间:2015-04-12 23:00:18

标签: ruby ruby-on-rails-3 ruby-on-rails-4 haml

我正在尝试使用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)

但这导致了一个奇怪的错误,其中属性no-turbolink现在是URL (image attached)的物理部分

2 个答案:

答案 0 :(得分:1)

这可能是Rails turbolinks缓存的问题,因为您正在使用链接来“拉”新的食谱索引。尝试删除turbolink以进行验证。

这是一个Railscasts解决方案:Sortable Table Columns
以下是相关的StackOverflow QA:Using turbolinks in a Rails link_to

答案 1 :(得分:0)

我仍然无法让这个工作,并尝试了许多不同的解决方案,包括不同的宝石。没有运气。