我想重定向用戶基於他們用於sign_in的參數,但我沒有看到辦法。從/users/sign_in/?demo=car
重定向用戶基於sign_in參數
用戶:: SessionsController <設計:: SessionsController
def create
super
# get the params
if params[:demo] == car
# redirect_to where_ever
end
end
顯然,這是行不通的
用戶的跡象。
正確的重定向:
ApplicationController中<的ActionController :: Base的
def after_sign_in_path_for(resource)
# I must have params[:demo] here. How?
if params[:demo] == car
# go elsewhere
else
request.env['omniauth.origin'] || stored_location_for(resource) || root_path
end
end
一個很長的路將更新用戶與PARAMS列,然後在after_sign_in_path_for
我檢查current_user
列中params然後重定向。如果用戶來自原始網址,我將該列更新爲""
。浪費時間吧?
您可以隱藏的輸入添加到您的登錄表單,並填寫與'PARAMS值:演示]'。提交表單(登錄)後,該值將從'params'訪問。 –
用戶登錄後,我仍然需要該參數。我想我可能需要更新用戶模型以執行我想要的操作。 – Sylar
我已經提出了將參數轉發到'after_sign_in_path_for'方法的方法。然後,您可以將其保存在數據庫中或存儲在會話中。這取決於你的情況;) –