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