Ruby on rails [Ruby on rails]如何通过不同的控制器视图维护URL参数?
我正在开发一个可以跟踪不同类型合同的应用程序,我的任务是制作一个多重过滤功能,但是,当用户在视图之间移动时,他的标准应该保持不变,这样当他们返回主视图时,就不必再输入主视图,通过每个链接传递它们是不可行的,因为我限制了搜索参数,所以根本不起作用 起初,我认为覆盖默认的_url _options选项方法是一个足够好的解决方案,但这会产生比它解决的问题更多的问题,因为现在参数非常粘稠,很难去除 那么,通过控制器的不同视图维护此参数的更好方法是什么 我的代码:Ruby on rails [Ruby on rails]如何通过不同的控制器视图维护URL参数?,ruby-on-rails,Ruby On Rails,我正在开发一个可以跟踪不同类型合同的应用程序,我的任务是制作一个多重过滤功能,但是,当用户在视图之间移动时,他的标准应该保持不变,这样当他们返回主视图时,就不必再输入主视图,通过每个链接传递它们是不可行的,因为我限制了搜索参数,所以根本不起作用 起初,我认为覆盖默认的_url _options选项方法是一个足够好的解决方案,但这会产生比它解决的问题更多的问题,因为现在参数非常粘稠,很难去除 那么,通过控制器的不同视图维护此参数的更好方法是什么 我的代码: class ContractsContr
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
class ContractsController
提前感谢
< P>您可能需要考虑将这些变量存储在用户的会话中。这样,您就不会依赖于在视图之间重新提交参数 这样你就可以做到:session[:contractor_id] = params[:contractor_id]
session[:starting_date] = params[:starting_date]
在不同的操作中,您可以检索它:
session[:contractor_id]
session[:starting_date]
您可能想考虑将这些变量存储在用户的会话中。这样,您就不会依赖于在视图之间重新提交参数
这样你就可以做到:session[:contractor_id] = params[:contractor_id]
session[:starting_date] = params[:starting_date]
在不同的操作中,您可以检索它:
session[:contractor_id]
session[:starting_date]
刚刚试过,效果非常好!然而,我没有为每个参数创建一个会话变量,而是创建了一个包含整个参数散列的会话变量,这样我就可以更轻松地操作它。只是尝试了一下,效果非常好!然而,我没有为每个参数创建一个会话变量,而是创建了一个包含整个params散列的会话变量,这样我就可以更轻松地操作它。