[英]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):
根據設計文檔,您可以生成自定義設計控制器,因此您可以放置自己的邏輯。
就我而言,我為相應的請求向 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.