2017-12-11 63 views
0

私は別の移行を通じてVendorモデルにいくつかの余分なフィールドを追加し、その後、トークンベースの認証レールのAPIを構築するためにdevise_token_authentication宝石を使用していて、それらを可能にするために、私はこれを書いた:の後に続いてdevise_token_auth gemで特定のdevise_controllerにparamsを許可するにはどうすればいいですか?

class ApplicationController < ActionController::Base  
    before_action :configure_permitted_parameters, if: :devise_controller? 

    protected 

    def configure_permitted_parameters 
    devise_parameter_sanitizer.permit(:sign_up, keys: [:first_name, :last_name, :tax_number]) 
    devise_parameter_sanitizer.permit(:account_update, keys: [:first_name, :last_name, :tax_number]) 
    end 
end 

を私はにしてみてくださいroutes.rbを

Rails.application.routes.draw do 
    mount_devise_token_auth_for 'Vendor', at: 'vendor/auth' 
    mount_devise_token_auth_for 'Customer', at: 'customer/auth' 
end 

たびに、別のモデルCustomerrails g devise_token_auth:install Customer auth

を追加したことから'localhost:3000/customer/auth'までActiveModel::UnknownAttributeError: unknown attribute 'tax_number' for Customer.

Vendorモデルの追加フィールドのみを許可して「顧客」をスキップする方法はありますか?あなたがオーバーライドする場合this setup for multiple devise user models.

または

答えて

1

外観はRegistrationsControllerあなたがregistrationsController

class Users::RegistrationsController < DeviseTokenAuth::RegistrationsController 
    def create 

    end 

    def account_update 

    end 

    private 


    def sign_up_params 
    params.require(:user).permit(:email, :password, :password_confirmation, :first_name, :last_name, :tax_number) 
    end 
end 
+0

に直接余分のparamsを許可する必要があり、私はそれを知っているが、私はコントローラを上書きせずに方法が必要です! –

関連する問題