在我的控制器中,我有两种方法可以对图像数据库进行排序:
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
});
这是正确的做法吗?无论哪种方式,如果你能推荐一种优雅的方式,我将不胜感激!
非常感谢提前。
答案 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