繁体   English   中英

Rails 覆盖传递的请求参数

[英]Rails override passed request params

在我的 Rails 7 API only 应用程序中,我收到了带有这些参数的请求:

  def event_params
    params.permit(:event, :envelopeId, :action, :recipient)
  end

在控制器内部,我需要设置一个基于event_params[:action]的守卫,如下所示:

    class EventsController < BaseController
      def event_callback
        return unless event_params[:action] == 'envelopefinished'
        (...)
      end
    end

但事实证明:action是默认的 ActionController::Parameters 参数,表示正在执行的操作的名称(即,正在调用的方法)。 是否可以在不将 JSON 密钥名称更改为其他名称的情况下获取在 JSON 文件中传递的参数 event_params[:action]?

它实际上是覆盖params[:action]params[:controller]的路由器,但您仍然可以通过请求对象访问原始参数:

request.POST["action"]

这个看起来很奇怪的方法(是的,它是一个方法而不是常量)来自Rack::Request::Helpers并给出了来自请求主体的解析参数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM