使用JavaScript更改ruby循环变量

时间:2013-01-07 10:44:02

标签: javascript ruby-on-rails variables sorting loops

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

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

});

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

非常感谢提前。

2 个答案:

答案 0 :(得分:0)

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

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

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

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

答案 1 :(得分:0)

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