[英]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.