你需要做到以下幾點:
#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
場