Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JavaScript更改ruby循环变量_Javascript_Ruby On Rails_Variables_Sorting_Loops - Fatal编程技术网

使用JavaScript更改ruby循环变量

使用JavaScript更改ruby循环变量,javascript,ruby-on-rails,variables,sorting,loops,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 %> 这样做对吗?无论哪种方式,如果你能推荐一种优雅的方式,我将不胜感激 非常感

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

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事件发生时,传递sort_by params

def index
   @picslist = Pic.order("#{params[:sort_by]} DESC")  
end
其中参数[:sort_by]将被“创建于”或“价格”


类似于此,并使用ajax或表单提交更新页面。

感谢您的帮助。。。实际上,我发现最好的方法就是对结果进行排序,详细说明是当你使用javascript时,你会改变html。Ruby代码已被解释。非常感谢。。。实际上,我发现我做得完全错误,只需要添加排序参数。另外,使用
“#{params[:sort_by]}DESC”
可能不是一个好主意,由于sql注入,您可以使用帮助器方法来消除这种情况
def index
   @picslist = Pic.order("#{params[:sort_by]} DESC")  
end