3

我有一个Rails引擎,我想使用Devise。我像this guide一样正常安装了设备。Rails引擎和设计

我在引擎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

我也尝试添加设计一个全新的插件,并添加这在我的引擎路线文件:devise_for:用户, {0} {0} {0}类名:'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。我还发现,在安装引擎时,指定路径非常重要,否则设计路线将无法正常工作(例如:mount Cms :: Engine =>“/ cms”) – jakobk

回答

3

这里的如何:

  1. Rails插件新的CMS --mountable -d PostgreSQL的

2:安装设计像正常

3:在主应用程序的路线添加此文件:

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

这行在这里,在dev中提到伊势维基,引起了我的问题:

config.router_name = :Cms_user 

百科: https://github.com/plataformatec/devise/wiki/How-To:-Use-devise-inside-a-mountable-engine

+1

如果我们将此引擎添加到我们的主应用中,可以主应用用户过滤器,例如authenticate_user! ? – Karan