0

在我的控制器中,我有两种对图像数据库进行排序的方法:

def index
   @picslist = Pic.order("created_at DESC")

   @picslist2 = Pic.order("price DESC")
end

在我看来,我列出了它们:

<% @picslist.each do |pic| %>
    PICS IN HERE
<% end %>

我想用 JavaScript 点击事件将@picslist变量更改为,如下所示:@picslist2

$("#sortbyprice").click(function(event) {

    //replace @picslist with @picslist2

});

这是正确的做法吗?无论哪种方式,如果您能推荐一种优雅的方式,我将不胜感激!

提前谢谢了。

4

2 回答 2

0

制作两个对象@picslist 和@picslist2 不是一个好主意。当 javascript 事件发生时传递 sort_by 参数。

def index
   @picslist = Pic.order("#{params[:sort_by]} DESC")  
end

其中 params[:sort_by] 将是“created_at”或“price”

类似的东西并使用 ajax 或表单提交来更新页面。

于 2013-01-07T10:58:29.563 回答
0

感谢您的帮助...实际上,我发现最好的方法就是对结果进行排序,详见此处

于 2013-01-07T13:22:19.363 回答