2017-12-11 1 views
0

Ich devise_token_authentication Juwel mit Token-basierte Authentifizierung Schienen api zu bauen, danach dann habe ich einige zusätzliche Felder zu Vendor Modell durch verschiedene Migration und um ihnen zu ermöglichen, schrieb ich folgendes:Wie kann man params zu einem bestimmten devise_controller mit devise_token_auth gem zulassen?

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 

Dann nach dass ich hinzugefügt ein anderes Modell Customerrails g devise_token_auth:install Customer auth

dann in 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 

jedes Mal, wenn ich zuversuchenmit Kunden durch 'localhost:3000/customer/auth' Ich habe Fehlermeldung: ActiveModel::UnknownAttributeError: unknown attribute 'tax_number' for Customer.

So gibt es eine Möglichkeit, die zusätzlichen Felder nur für Vendor Modell zuzulassen und "Kunden" überspringen?

Antwort

1

Blick auf this setup for multiple devise user models.

oder

Wenn Sie die RegistrationsController Sie außer Kraft setzen müssen zusätzliche params direkt 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

Ich weiß, dass, aber ich brauche, ohne Überschreiben der Controller eine Art und Weise ermöglichen! –

Verwandte Themen