通常,索引页面包含过滤,页面,排序选项。在进入显示,新的编辑页面后,您可能希望使用与您看到的相同选项返回索引页面。
为此,我将会话中的索引保存为会话。
class ApplicationController < ActionController::Base
helper_method :index_with_params
after_filter :save_index_params, :only => [:index]
def save_index_params
session[self.class.to_s] = params
end
def index_with_params overrider={}
object = self.kind_of?(ApplicationController) ? self : controller
h = session[object.class.to_s] || {"action" => :index}
h["only_path"] = true
url_for(h.merge(overrider));
end
end
我曾经使用ActiveRecord进行会话存储。现在我想使用cookie。所以会议应该很轻松。
你如何处理这种情况?
感谢。
萨姆
答案 0 :(得分:1)
在显示,新建,编辑页面之后,您可能想要回到 索引页面与您看到的选项相同。
如果您最初在查询字符串中传递过滤选项,即。 example.com/widgets?order_by=price
,然后当您的用户使用浏览器“返回”按钮导航回索引时,将保留过滤选项。
如果您确实希望在用户稍后输入example.com/widgets
时保留选项,则需要将选项保留在某处,通常在session
对象中。 cookie商店最多可以容纳4KB,所以除非你有很多选择,否则应该没问题。如果您需要更多空间或性能成为问题,请查看其他会话存储,例如Redis Store。