我正在修改我的application_controller中的params对象,该对象处理所有带有root的路由。我有多个链条后面的控制器。
我在Application_Controller中修改了params对象,但我在后续控制器中获取了原始params对象。
注意:在应用程序控制器中进行了修改后,我打印出参数,在此进行了修改。但是,当我在随后的控制器中打印出相同的印刷时,它又回到了原始状态。
应用程序控制器(应用程序控制器位于核心引擎中,这是第一个被请求击中的控制器)
before_action :handle_params
def handle_params
param = nil
#Identify method from request object
method = request.method #Come from request.method
if method == "GET"
param = JSON.parse(URI.unescape(params["body"]))
params[:header] = param[:header]
params[:data] = param[:data]
else
params = params["body"]
end
end
在我的公共引擎中 require_dependency "core/application_controller"
module Common
class API::LoaderController < Core::ApplicationController
def fetch
pp params
responder FetchLoader.call(@context,params)
end
end
end
您是否尝试过?
self.params = self.params["body"]
它对我有用。