ROR:在1控制器中修改的参数对象不会传播链式控制器



我正在修改我的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"]

它对我有用。

最新更新