2015-12-05 20 views
0

我在我的rails應用程序中爲我的用戶使用Devise。當人們只註冊他們的電子郵件和密碼時。我如何訪問控制器以允許更多參數,例如名字和姓氏? 謝謝設計模型的其他參數登錄

回答

0

您應該將參數添加到devise_parameter_sanitizersign_up

你可以在你application_controller.rb

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

    protected 

    def configure_permitted_parameters 
    devise_parameter_sanitizer.for(:sign_up) << :first_name 
    end 
end 

完成或配置使用整套的參數

def configure_permitted_parameters 
    devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:password, :password_confirmation, :email, :first_name, :last_name) } 
end 

另一種方法是創建一個繼承自的類10

class User::ParameterSanitizer < Devise::ParameterSanitizer 
    def sign_up 
    default_params.permit(:password, :password_confirmation, :email, :first_name, :last_name) 
    end 
end 
application_controller.rb

class ApplicationController < ActionController::Base 
    protected 

    def devise_parameter_sanitizer 
    User::ParameterSanitizer.new(User, :user, params) 
    end 
end 

然後