2016-11-05 5 views
0

私はユーザー認証を処理するためにdeviseを実行していますが、あなたがdeviseで設定した経験があるのでしょうか?Deviseを使用して紹介を設定する問題

は私がいいですthis small postが見つかりましたが、このラインがどのように機能するかに関して、少し混乱しています:

def capture_referal 
    session[:referral] = params[:referral] if params[:referral] 
end 
私は私が params[:referral]に入力するためのものだということを例に見ることができません

また、紹介トークンはユーザーが設定する参照コード(例:RAILSDEVISE)になるか、URL全体がx.com?ref=RAILSDEVISEになりますか?

誰もが私は(それをチェックアウトしてみたいレール紹介プログラムのgithubのを持っている場合:

答えて

0

あなたは、次の操作を行う必要があります

#app\controllers\application_controller.rb 
def capture_referal 
    session[:referral] = params[:referral] if params[:referral] 
end 

があなたの登録ビューに隠しフィールドを追加:

#app\views\devise\registrations\new.html.erb 
<%= f.hidden_field :referral_code, value: session[:referral] %> 

作成し、許可パラメータとして次のファイルを:referral_codeを追加するには

#app\controllers\users\registrations_controller.rb 
class Users::RegistrationsController < Devise::RegistrationsController 
before_filter :configure_permitted_parameters 

protected 

    def configure_permitted_parameters 
    devise_parameter_sanitizer.permit(:sign_up, keys: [:referral_code]) 
    end 
end 

そして最後に、あなたのルートを更新します。それだけです

#config\routes.rb 
devise_for :users, controllers: { registrations: "users/registrations" } 

を、あなたはどこか他のparams[:referral]を追加する必要はありません。

そして、あなたの紹介リンクのみsdewddf:referral_codeフィールド

に保存されます、 x.com?referral=sdewddfであれば、あなたの最後の質問に答えるために
関連する問題