使用Devise设置推荐问题

时间:2016-11-05 08:53:57

标签: ruby-on-rails ruby cookies devise

我正在运行设计来处理用户身份验证,我想知道你们中是否有人有设置设备的经验?

我发现this small post这很好但是对于这条线如何工作有点困惑:

def capture_referal
  session[:referral] = params[:referral] if params[:referral]
end

我无法在该示例中看到我打算在params[:referral]输入哪些内容?

这看起来很简单,推荐令牌是用户设置的引荐代码,例如RAILSDEVISE还是整个网址x.com?ref=RAILSDEVISE

如果有人有一个铁路推荐计划的github,我很乐意检查出来(:

1 个答案:

答案 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