用JavaScript修改ruby循环变量

Changing a ruby loop variable with JavaScript

本文关键字:循环 变量 ruby 修改 JavaScript      更新时间:2023-09-26

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

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

在我的视图中,我把它们放出来:

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

我想改变@picslist变量@picslist2与JavaScript点击事件,类似于:

$("#sortbyprice").click(function(event) {
    //replace @picslist with @picslist2
});

这是正确的做法吗?无论哪种方式,如果你能推荐一种优雅的方式来做这件事,我会很感激的!

提前感谢。

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

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

where params[:sort_by]将为"created_at"或"price"

使用ajax或表单提交来更新页面

谢谢你的帮助…我发现最好的方法就是对结果进行排序,如下所示