【发布时间】:2016-11-06 05:09:38
【问题描述】:
我正在制作一个推荐系统,该系统使用此代码将 url 的推荐部分存储在 cookie 中。
before_filter :capture_referral
private
def capture_referral
session[:ref] = params[:ref] if params[:ref]
end
然后我在我的设计用户注册 html.erb 中调用 session[:ref],就像 <%= f.hidden_field :referred_by, value: session[:ref]%> 一样,我知道 cookie 正在工作,因为参数的输出是:
Aunticity_token"=>"CmYKwW8LxRAIz1eLp6tQcwJefvnEMU1xV3aby0/pWKGqyd4WitO8oTcDu0u+51HcGB7eyyXZzn2jbEg+D48d4A==",
"user"=>{
"email"=>"jexuc@gmail.com",
"password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]",
"referred_by"=>"jayhaz"},
"commit"=>"Sign up"}`
但是,在输出中有一个Unpermitted parameter: referred_by,它会停止将referred_by 代码保存到用户的数据库条目中。
我也尝试了以下方法,但它仍然不起作用,是的,它已在我的 routes.rb 文件中声明:
class User::RegistrationsController < Devise::RegistrationsController
before_filter :configure_permitted_parameters
protected
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up, keys:[:referred_by])
# devise_parameter_sanitizer.permit(:account_update, keys:[:first_name, :last_user])
end
end
完全不知道发生了什么。
【问题讨论】:
标签: ruby-on-rails forms cookies devise