可以使用,除非在before_action語句,那麼unauthentication用戶可以看到任何色器件控制器動作
class ApplicationController < ActionController::Base
...
before_filter :sending_params
before_action :check_auth, unless: :devise_controller?
...
protected
def check_auth
unless user_signed_in?
redirect_to new_user_session_path(sending_params)
end
end
def sending_params
params.permit(:first_param, :second_param)
end
...
,並且可以訪問到PARAMS不產生由生成設計的控制器設計的觀點和看法使用
<%= params[:first_param] %>
如果需要將參數發送到omniauth控制器,您可以在設計視圖中更改鏈接
<%= link_to 'Sign in by provider', omniauth_authorize_path(:user, :provider, first_param: params['first_param']) %>
其中:用戶 - 名色器件模型,:供應商 - 名omniauth提供商(:Facebook的即)
在omniauth控制器,你可以使用
def first_param
request.env['omniauth.params']['first_param'] ||= ''
end
難道我的回答解決了問題? –