〔Ruby on rails〕如何通过不同的控制器视图维护URL参数



我正在开发一个应用程序,该应用程序允许跟踪不同类型的合同,我的任务是制作多个过滤功能,然而,当用户在视图之间移动时,他的标准应该保持不变,这样当他们回到主视图时,就不必再次输入,通过每个链接传递它们是不可行的,而且它根本不起作用,因为我限制了搜索参数。

起初,我认为覆盖default_url_options方法是一个足够好的解决方案,但这会产生比解决更多的问题,因为现在参数非常粘稠,很难摆脱

那么,通过控制器的不同视图来维护这个参数的更好方法是什么?

我的代码:

class ContractsController < ApplicationController
....
private
def search_params
params.permit(:contractor_id,  :starting_date, 
:ending_date, :state, :proccess_number).delete_if 
{|key, value| value.blank? }
end
def default_url_options (options={})
search_params
end 
....
end

提前感谢

您可能需要考虑将这些变量存储在用户的会话中。这样就不需要在视图之间重新提交参数。

你可以这样做:

session[:contractor_id] = params[:contractor_id]
session[:starting_date] = params[:starting_date]

在不同的操作中,您可以检索它:

session[:contractor_id]
session[:starting_date]

最新更新