2015-04-12 278 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