2015-09-08 1 views
0

J'ai deux modèles d'appareil - Travailleur et utilisateur. L'inscription du travailleur nécessite des attributs supplémentaires non spécifiques à l'utilisateur.Rails 4 Devise Surcharger la fonction non-paresseuse

je courais mon inscription utilisateur via le contrôleur d'application

def configure_permitted_parameters 
    devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:username, :password, :email, :firstName, :lastName, :dateofBirth, :address1, :address2, :city, :state, :zip)} 
end 

Cependant, quand j'ai ajouté mon signe du travailleur, je décide de suivre la voie nonlazy, créé mon contrôleur de travailleurs via

rails generate devise:controllers Worker 

Et procédé au contrôleur d'enregistrement dans le travailleur. Là, j'ai débloqué le filtre avant et ajouté un filtre de params après avoir cherché Google et StackOflow pour comprendre comment faire cela. Également allé dans le code source Github concevoir et copié et collé leur code de créer dans leur contrôleur d'enregistrement. Mon contrôleur ressemble à ceci:

class Workers::RegistrationsController < Devise::RegistrationsController 
before_filter :configure_sign_up_params, only: [:create] 
def create 
build_resource(registration_params) 

resource.save 
yield resource if block_given? 
if resource.persisted? 
    if resource.active_for_authentication? 
    set_flash_message :notice, :signed_up if is_flashing_format? 
    sign_up(resource_name, resource) 
    respond_with resource, location: after_sign_up_path_for(resource) 
    else 
    set_flash_message :notice, :"signed_up_but_#{resource.inactive_message}" if is_flashing_format? 
    expire_data_after_sign_in! 
    respond_with resource, location: after_inactive_sign_up_path_for(resource) 
    end 
else 
    clean_up_passwords resource 
    set_minimum_password_length 
    respond_with resource 
end 
#super 
end 
protected 
def registration_params 
params.require(:worker).permit(:username, :password, :email, :firstname, :lastname, :address1, :address2, :city, :state, :zip) 
end 
# If you have extra params to permit, append them to the sanitizer. 
def configure_sign_up_params 
    devise_parameter_sanitizer.for(:sign_up) {|u| u.permit(:username, :password, :email, :firstname, :lastname, :address1, :address2, :city, :state, :zip)} 
end 
end 
end 

Les données apparaissent toujours comme nul sur ma console. Pourquoi les données ne sont pas sauvegardées et comment puis-je récupérer les données?

Répondre