簡體   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