在Rails中记住索引的params的最佳方法是什么?

时间:2012-09-20 17:07:45

标签: ruby-on-rails session

通常,索引页面包含过滤,页面,排序选项。在进入显示,新的编辑页面后,您可能希望使用与您看到的相同选项返回索引页面。

为此,我将会话中的索引保存为会话。

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。所以会议应该很轻松。

你如何处理这种情况?

感谢。

萨姆

1 个答案:

答案 0 :(得分:1)

  

在显示,新建,编辑页面之后,您可能想要回到   索引页面与您看到的选项相同。

如果您最初在查询字符串中传递过滤选项,即。 example.com/widgets?order_by=price,然后当您的用户使用浏览器“返回”按钮导航回索引时,将保留过滤选项。

如果您确实希望在用户稍后输入example.com/widgets时保留选项,则需要将选项保留在某处,通常在session对象中。 cookie商店最多可以容纳4KB,所以除非你有很多选择,否则应该没问题。如果您需要更多空间或性能成为问题,请查看其他会话存储,例如Redis Store。