2016-11-05 68 views
0

我正在運行設計來處理用戶身份驗證,我想知道您是否有任何經驗設置一個設計?使用設計設置引薦問題

我發現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]其他地方。

並回答你的最後一個問題,如果您的推薦鏈接x.com?referral=sdewddf,只有sdewddf將被保存在:referral_code