2013-07-08 8 views
7

मेरे पास devise का उपयोग कर रेल 4 एप्लिकेशन है। मैं उपयोगकर्ताओं को उनके साथ जुड़े उपयोगकर्ता नाम रखने की अनुमति देने की कोशिश कर रहा हूं।रेल तैयार करने के लिए उपयोगकर्ता नाम जोड़ना 4

मैं उपयोगकर्ता तालिका करने के लिए एक उपयोगकर्ता नाम (स्ट्रिंग) स्तंभ जोड़ लिया है और इस तरह मेरी आवेदन नियंत्रक नज़र था:

class ApplicationController < ActionController::Base 

    before_filter :configure_permitted_parameters, if: :devise_controller? 
    protect_from_forgery with: :exception 
    protected 
    def configure_permitted_parameters 
     devise_parameter_sanitizer.for(:sign_in) { |u| u.permit(:username, :email) } 
    end 

end 

और मैं भी उन पर उपयोगकर्ता नाम एक क्षेत्र जोड़ दिया है/sign_up पेज।

लेकिन मैं इस त्रुटि मिलती है:

undefined local variable or method `devise_parameter_sanitizer' for #<Devise::RegistrationsController:0x00000101378a28> 

तो मूल रूप से मेरे सवाल क्यों इस त्रुटि दिखाई दे रहा है है, या और कैसे मैं एक उपयोगकर्ता एक उपयोगकर्ता नाम प्राप्त करने के लिए मिल सकता है?

सभी मदद के लिए धन्यवाद!

उत्तर

16

आप केवल उपयोगकर्ता नाम में साइन इन करने की अनुमति दे रहे हैं, लेकिन मुझे लगता है कि जब आप कोई नया उपयोगकर्ता बनाते हैं, तो यह साइन अप विधि पर है। तो यह प्रयास करें:

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

स्रोत: https://github.com/plataformatec/devise#strong-parameters

+0

धन्यवाद कि काम किया। – infinity

+1

मैं इसे अपने application_controller में कर रहा हूं और मैं पंजीकरण और लॉगिन करने में सक्षम हूं (पंजीकरण के तुरंत बाद)। लेकिन मैं लॉगिन पेज से लॉगिन करने में सक्षम नहीं हूं। मेरे पास उपयोगकर्ता नाम के लिए लॉगिन/प्रमाणीकरण कुंजी सेटअप है, और मेरे पास डेटाबेस में उपयोगकर्ता नाम और पासवर्ड फ़ील्ड हैं। कोई सुराग? यहां मेरी समस्या का एक और विस्तृत संस्करण दिया गया है - http://stackoverflow.com/questions/18804971/devise-rails-4-not-able-to-login –

संबंधित मुद्दे