使用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