Ruby on rails 存储过滤器状态,以便稍后返回

Ruby on rails 存储过滤器状态,以便稍后返回,ruby-on-rails,Ruby On Rails,我有一个带有索引视图和显示视图的应用程序,没有什么特别的。索引视图具有过滤器选项。我想要的是,用户选择的过滤选项以某种方式存储,因此当用户打开详细信息屏幕并稍后返回时,将显示相同的过滤记录 后退按钮不是一个选项,因为可以做的不仅仅是打开详细信息屏幕并返回。在返回到索引页面之前,我可以将过滤器参数添加到每个请求中,但这似乎有点麻烦。我的选择是什么?我在控制器中通过创建一个名为manage\u filter\u state的私有方法解决了这个问题。在索引操作中调用此方法,然后根据筛选器参数的值检索所

我有一个带有索引视图和显示视图的应用程序,没有什么特别的。索引视图具有过滤器选项。我想要的是,用户选择的过滤选项以某种方式存储,因此当用户打开详细信息屏幕并稍后返回时,将显示相同的过滤记录


后退按钮不是一个选项,因为可以做的不仅仅是打开详细信息屏幕并返回。在返回到索引页面之前,我可以将过滤器参数添加到每个请求中,但这似乎有点麻烦。我的选择是什么?

我在控制器中通过创建一个名为
manage\u filter\u state
的私有方法解决了这个问题。在索引操作中调用此方法,然后根据筛选器参数的值检索所有记录。方法如下所示:

  private

  def manage_filter_state
    if params[:company]
      cookies[:company] = { value: params[:company], expires: 1.day.from_now }
    else
      if cookies[:company]
        params[:company] = cookies[:company]
      end
    end
  end

基本上,如果设置了param值,它会设置一个cookie来保持状态。当稍后使用另一个param值再次访问页面时,它将覆盖cookie。在没有参数值的情况下稍后访问,它会使用cookie值设置参数。

通常不需要对其使用cookie。将其存储在会话[:name]

控制器内部是一个好地方。为了概括这个问题,您可以将任何查询存储在会话变量中,并在接收链接时追加


然后在离开控制器时重置。

会话或本地存储都是很好的候选对象。您知道哪些示例可以为我指明正确的方向?