我正在运行设计来处理用户身份验证,我想知道你们中是否有人有设置设备的经验?
我发现this small post这很好但是对于这条线如何工作有点困惑:
def capture_referal
session[:referral] = params[:referral] if params[:referral]
end
我无法在该示例中看到我打算在params[:referral]
输入哪些内容?
这看起来很简单,推荐令牌是用户设置的引荐代码,例如RAILSDEVISE
还是整个网址x.com?ref=RAILSDEVISE
?
如果有人有一个铁路推荐计划的github,我很乐意检查出来(:
答案 0 :(得分:1)
您需要执行以下操作:
#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