2013-05-13 6 views
6

मेरे पास प्रमाणीकरण के लिए Devise के साथ ActiveAdmin के साथ एक रेल है। मेरे पास AdminUser और उपयोगकर्ता मॉडल हैं ताकि उपयोगकर्ता मॉडल को व्यवस्थापक के बारे में परवाह न हो। हालांकि, मैं व्यवस्थापक पृष्ठ के अंदर से व्यवस्थापक और न ही उपयोगकर्ता को संपादित/संपादित नहीं कर सकता। जब भी मैं ऐसा करने का प्रयास करें, यह मुझे संदेश दे देंगेActiveAdmin: संरक्षित विशेषताओं को बड़े पैमाने पर असाइन नहीं कर सकता: ईमेल, पासवर्ड, password_confirmation

Can't mass-assign protected attributes: email, password, password_confirmation 

ऐसा इसलिए है क्योंकि अंदर उपयोगकर्ता मॉडल और AdminUser मॉडल अजीब है, मैं पहले से ही है:

attr_accessible :email, :password, :password_confirmation 

यह दूसरी तरह की कोशिश करने के लिए, मैं रेल के लिए चला गया सांत्वना और एक AdminUser बनाने का प्रयास करें और यह सब काम किया:

AdminUser.create(:email => '[email protected]', 
    :password => 'password', :password_confirmation => 'password') 

व्यवस्थापक वेब पेज से केवल निर्माण इसका मतलब है कि विफल रही है।

मैं प्रमाणीकरण के लिए डेविस का उपयोग कर रहा हूं। त्रुटि उपयोगकर्ता और AdminUser दोनों मॉडल के साथ होती है।

पासवर्ड और पासवर्ड_confirmation के लिए, मेरे पास डेटाबेस में उन फ़ील्ड नहीं हैं, लेकिन यह तरीका है कि डेविस डिफ़ॉल्ट रूप से है, डेटाबेस में पासवर्ड कभी नहीं है। मैं

attr_accessible :email, :password, :password_confirmation, :remember_me, :provider, :uid 

बदलने

attr_accessible :email, :password, :password_confirmation, :remember_me, :provider, :uid, :as => [:default, :admin] 

करने और यह काम करता

devise :database_authenticatable, :registerable, :rememberable, :recoverable, :trackable, :omniauthable, :omniauth_providers => [:facebook] 
     ##, :validatable 

    # Setup accessible (or protected) attributes for your model 
    attr_accessible :email, :password, :password_confirmation, :remember_me, :provider, :uid 

    # attr_accessible :title, :body 
    validates :email, :password, :first_name, :last_name, 
       presence: true 
    validates :email, uniqueness: true 

    has_many :devices 
    has_many :posts 
+2

शायद आपको अपने attr_accessible में ": as =>: admin_user" जोड़ना होगा। मैं active_admin मणि के लिए यह exaclty नहीं जानता, लेकिन उदाहरण के लिए यदि आप इस मणि का उपयोग कर रहे हैं https://github.com/fesplugas/typus आपको वर्तमान उपयोगकर्ता की भूमिका निर्दिष्ट करना है: as =>: admin_user – Mattherick

+0

मुझे लगता है कि यह प्रश्न आपको समझने में मदद करेगा: as => "आपकी भूमिका" बेहतर ..http: //stackoverflow.com/questions/6877853/rails-how-to-declare-attr-accessible-for-mutliple- भूमिकाओं के बिना-डुप्लिकेशंस – Mattherick

+0

आपका व्यवस्थापक निर्माण फ़ॉर्म कैसा दिखता है? यदि आप सर्वर लॉग सूचीबद्ध करते हैं जो मदद कर सकते हैं। –

उत्तर

8

:

यहाँ उपयोगकर्ता मॉडल है।

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

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