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