3

나는 Devises를 사용하고자하는 레일즈 엔진을 가지고 있습니다. 나는 보통 다음과 같은 장치를 설치했다 this guide. 레일즈 엔진과 devise

나는 나의 엔진 devise.rb이 추가 :

Devise.setup do |config| 
    config.router_name = :cms_user 
end 

내 경로 파일이 추가 :

Cms::User::Engine.routes.draw do 
    devise_for :users, { 
    class_name: 'Cms::User', 
    module: :devise 
    } 
end 

내가 내 노선이 추가 :

devise_for :users, { 
    class_name: 'Cms::User', 
    module: :devise 
} 

그러나 나는이 오류가 계속 나타납니다 :

undefined method 'cms_user' 

내가 뭘 잘못하고 있니?

+0

사용자, { class_name : 'Blorgh :: User', module : : devise } 그리고 내 장치 파일 config.router_name = : blorgh_instant_user – jakobk

+0

이 문제를 해결하려면 어떤 행운이 필요합니까? 내가 확실하지 않지만 나는 같은 문제에 부딪혔을지도 모른다 : http://stackoverflow.com/questions/12879350/why-doesnt-authenticate-admin-give-an-undefined-method-error-for-a- rails-engine – Inc1982

+0

안녕하세요! - 그래, 내가 해결 했어, 최신 anwser 봐. 또한 엔진을 마운트 할 때 경로를 지정하는 것이 중요합니다. 그렇지 않으면 Devise 경로가 작동하지 않습니다 (예 : mount Cms :: Engine => "/ cms") – jakobk

답변

3

여기 년대 방법 :

  1. 레일 플러그인 새 CMS --mountable -d PostgreSQL을

2 : 정상

3처럼 고안 설치 : 메인 애플리케이션 노선이 추가 파일 :

devise_for :users, { 
    class_name: 'Cms::User', 
    module: :devise 
    } 

여기에있는이 행은 dev 이세 위키가 나를 위해 문제가 발생 :

config.router_name = :Cms_user 

위키 : devise_for : 나는 또한 새로운 플러그인을 고안 추가했는데, 내 엔진 루트 파일에이를 추가 한 https://github.com/plataformatec/devise/wiki/How-To:-Use-devise-inside-a-mountable-engine

+1

이 엔진을 마스터 응용 프로그램에 추가하면 can authenticate_user와 같은 마스터 앱 사용자 필터! ? – Karan

관련 문제