2016-11-06 5 views
0

私はこのコードでクッキーにURLの紹介部分を格納する紹介システムを作っています。未許可パラメータ:incor_by

before_filter :capture_referral 

private 
def capture_referral 
    session[:ref] = params[:ref] if params[:ref] 
end 

私はその後、私の考案ユーザーでsession[:ref]はそう<%= f.hidden_field :referred_by, value: session[:ref]%>ようhtml.erb登録することを呼び出すとのparamsの出力があるので、私はクッキーが機能している知っている:

Aunticity_token"=>"CmYKwW8LxRAIz1eLp6tQcwJefvnEMU1xV3aby0/pWKGqyd4WitO8oTcDu0u+51HcGB7eyyXZzn2jbEg+D48d4A==", 
    "user"=>{ 
    "email"=>"[email protected]", 
    "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]", 
    "referred_by"=>"jayhaz"}, 
    "commit"=>"Sign up"}` 

しかし、出力に参照されたコードがユーザーのデータベースエントリに保存されるのを停止するUnpermitted parameter: 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 

で何が起こっているのか、全く手掛かり。

答えて

0

は、問題を修正しました、私は私のapplication_controller.rbとない私のUser::RegistrationsController < Devise::RegistrationsController

before_filter :configure_permitted_parameters, if: :devise_controller? 

def configure_permitted_parameters 
devise_parameter_sanitizer.permit(:sign_up, keys: [:email,:password,:password_confirmation,:referred_by]) 
# devise_parameter_sanitizer.permit(:account_update, keys:[:first_name, :last_user]) 
end 

を入れていました。私はそれがなぜ機能するのか完全には分かっていませんが、application_controllerとアプリ全体を運んでいて、ちょうどDevise::RegistrationsControllerレベルに座っているだけではないと思います。コメントに間違っているかもしれません。

関連する問題