2013-05-13 2 views
6

인증을위한 Devise가있는 ActiveAdmin이있는 레일스가 있습니다. AdminUser 및 User 모델을 사용하므로 User 모델은 관리자를 신경 쓸 필요가 없습니다. 그러나 Adminuser 또는 Admin 페이지에서 User를 생성하거나 편집 할 수 없습니다. 내가 그렇게하려고 할 때마다, 그것은 내부 사용자 모델과 관리 사용자 모델 때문에 이상해ActiveAdmin : 보호 속성을 대량 할당 할 수 없습니다 : 이메일, 비밀번호, password_confirmation

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

, 나는 이미 메시지를 나에게 줄 것이다 :

attr_accessible :email, :password, :password_confirmation 

이 그것을 다른 방법을 시도하기 위해, 나는 레일에 갔다 콘솔을 만들고 AdminUser를 만들면 모두 작동합니다.

즉, 관리 웹 페이지에서만 생성이 실패했음을 의미합니다.

나는 Devise for Authentication을 사용하고 있습니다. 이 오류는 User 및 AdminUser 모델 모두에서 발생합니다.

암호 및 password_confirmation의 경우 데이터베이스에 해당 필드가 없지만 Devise는 기본적으로 데이터베이스에 암호가 없습니다. 내가

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

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

을 변경하고 작동

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 젬에 대해서는 잘 모르겠지만, 예를 들어이 보석을 사용한다면 https://github.com/fesplugas/typus와 함께 현재 사용자의 역할을 지정해야합니다 : as => : admin_user – Mattherick

+0

나는이 질문이 당신을 이해하는 데 도움이 될 것이라고 생각합니다 : as => "your-role"better..http : //stackoverflow.com/questions/6877853/rails-how-to-declare-attr-accessible-for-mutliple- 중복없는 역할 – Mattherick

+0

관리자 작성 양식은 어떻게 보이나요? 도움이 될 수있는 서버 로그를 나열하십시오. –

답변

8

: 여기

은 사용자 모델이다.