簡體   English   中英

當用戶使用設計唱歌時如何傳遞附加參數? 即使它不是用戶列

[英]How to pass an additional parameter when the user singing up using devise? even it is not User coulmn

我想在用戶注冊時發送其他值並在使用 Rails API 中的 devise 和 devise-JWT 創建記錄之前執行一些邏輯,我使用了https://rubydoc.info/github/heartcombo/devise/main/Devise/ ParameterSanitizer允許附加參數

選擇不是用戶表中的列。

應用程序控制器

  before_action :configure_permitted_parameters, if: :devise_controller?

  protected

  def configure_permitted_parameters
    attributes = [:choice]
    devise_parameter_sanitizer.permit(:sign_up, keys: attributes)
    devise_parameter_sanitizer.permit(:account_update, keys: attributes)
  end


ActionDispatch::Http::Parameters::ParseError (Error occurred while parsing request parameters):

根據設計文檔,您可以生成自定義設計控制器,因此您可以放置​​自己的邏輯。

https://github.com/heartcombo/devise#getting-started

就我而言,我為相應的請求向 params 對象添加了一個名為“current_client_aplication_id”的屬性。 為了知道怎么做,我不得不檢查那一行中的 params 對象,使用 byebug 進行調試。

#application_controller
before_action do
   session[:current_client_application_id] = "1"
   params[request["controller"].singularize]["client_application_id"] = session[:current_client_application_id] if params[request["controller"].singularize]
end

這樣,“current_client application_id”在所有請求中都可用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM