2012-08-15 59 views
6

我有设计安装。
我有一个链接:<%= link_to "Sign up", new_user_registration_path %>Rails:我安装了ActiveAdmin,我的设计链接停止工作

当我安装ActiveAdmin(现有示范User),这个环节停止工作:

undefined local variable or method `new_user_registration_path' 

我用git的差异为routes.rb这里是(补充线黑色):

ActiveAdmin.routes(self)
devise_for :users, ActiveAdmin::Devise.config

而且<%= link_to "Sign out", destroy_user_session_path, :method => :delete %>现在导致/admin/logout

我怎样才能解决这个问题?

耙路线:

 admin_dashboard   /admin(.:format)      {:action=>"index", :controller=>"admin/dashboard"} 
     admin_codes GET  /admin/codes(.:format)     {:action=>"index", :controller=>"admin/codes"} 
        POST  /admin/codes(.:format)     {:action=>"create", :controller=>"admin/codes"} 
     new_admin_code GET  /admin/codes/new(.:format)    {:action=>"new", :controller=>"admin/codes"} 
    edit_admin_code GET  /admin/codes/:id/edit(.:format)  {:action=>"edit", :controller=>"admin/codes"} 
      admin_code GET  /admin/codes/:id(.:format)    {:action=>"show", :controller=>"admin/codes"} 
        PUT  /admin/codes/:id(.:format)    {:action=>"update", :controller=>"admin/codes"} 
        DELETE  /admin/codes/:id(.:format)    {:action=>"destroy", :controller=>"admin/codes"} 
     admin_users GET  /admin/users(.:format)     {:action=>"index", :controller=>"admin/users"} 
        POST  /admin/users(.:format)     {:action=>"create", :controller=>"admin/users"} 
     new_admin_user GET  /admin/users/new(.:format)    {:action=>"new", :controller=>"admin/users"} 
    edit_admin_user GET  /admin/users/:id/edit(.:format)  {:action=>"edit", :controller=>"admin/users"} 
      admin_user GET  /admin/users/:id(.:format)    {:action=>"show", :controller=>"admin/users"} 
        PUT  /admin/users/:id(.:format)    {:action=>"update", :controller=>"admin/users"} 
        DELETE  /admin/users/:id(.:format)    {:action=>"destroy", :controller=>"admin/users"} 
     admin_comments GET  /admin/comments(.:format)    {:action=>"index", :controller=>"admin/comments"} 
        POST  /admin/comments(.:format)    {:action=>"create", :controller=>"admin/comments"} 
    new_admin_comment GET  /admin/comments/new(.:format)   {:action=>"new", :controller=>"admin/comments"} 
    edit_admin_comment GET  /admin/comments/:id/edit(.:format)  {:action=>"edit", :controller=>"admin/comments"} 
     admin_comment GET  /admin/comments/:id(.:format)   {:action=>"show", :controller=>"admin/comments"} 
        PUT  /admin/comments/:id(.:format)   {:action=>"update", :controller=>"admin/comments"} 
        DELETE  /admin/comments/:id(.:format)   {:action=>"destroy", :controller=>"admin/comments"} 
    new_user_session GET  /admin/login(.:format)     {:action=>"new", :controller=>"active_admin/devise/sessions"} 
     user_session POST  /admin/login(.:format)     {:action=>"create", :controller=>"active_admin/devise/sessions"} 
destroy_user_session DELETE|GET /admin/logout(.:format)    {:action=>"destroy", :controller=>"active_admin/devise/sessions"} 
     user_password POST  /admin/password(.:format)    {:action=>"create", :controller=>"active_admin/devise/passwords"} 
    new_user_password GET  /admin/password/new(.:format)   {:action=>"new", :controller=>"active_admin/devise/passwords"} 
    edit_user_password GET  /admin/password/edit(.:format)   {:action=>"edit", :controller=>"active_admin/devise/passwords"} 
        PUT  /admin/password(.:format)    {:action=>"update", :controller=>"active_admin/devise/passwords"} 
       root   /         {:controller=>"codes", :action=>"list"} 
           /:controller(/:action(/:id(.:format))) 

我检查了旧版本,并途径为:

 new_user_session GET /users/sign_in(.:format)    {:action=>"new", :controller=>"devise/sessions"} 
      user_session POST /users/sign_in(.:format)    {:action=>"create", :controller=>"devise/sessions"} 
    destroy_user_session DELETE /users/sign_out(.:format)    {:action=>"destroy", :controller=>"devise/sessions"} 
      user_password POST /users/password(.:format)    {:action=>"create", :controller=>"devise/passwords"} 
     new_user_password GET /users/password/new(.:format)   {:action=>"new", :controller=>"devise/passwords"} 
     edit_user_password GET /users/password/edit(.:format)   {:action=>"edit", :controller=>"devise/passwords"} 
         PUT /users/password(.:format)    {:action=>"update", :controller=>"devise/passwords"} 
cancel_user_registration GET /users/cancel(.:format)    {:action=>"cancel", :controller=>"devise/registrations"} 
     user_registration POST /users(.:format)      {:action=>"create", :controller=>"devise/registrations"} 
    new_user_registration GET /users/sign_up(.:format)    {:action=>"new", :controller=>"devise/registrations"} 
    edit_user_registration GET /users/edit(.:format)     {:action=>"edit", :controller=>"devise/registrations"} 
         PUT /users(.:format)      {:action=>"update", :controller=>"devise/registrations"} 
         DELETE /users(.:format)      {:action=>"destroy", :controller=>"devise/registrations"} 
+1

运行'rake routes'并列出输出pls。 – n0denine 2012-08-15 01:59:39

回答

1

看来你正在使用正常用户和管理员用户相同的模型。 ActiveAdmin需要管理员使用单独的模型。试试恢复由发电机所做的更改,然后运行这个:

rails generate active_admin:resource AdminUser 
rake db:migrate 

这将创建一个AdminUser模型,绝对不会有你的网站的用户链接。

+0

问题是AA不需要单独的模型(我可以选择AA安装上的任何模型)。我想使用相同的模型。 – DmitryR 2012-08-15 11:37:08

+0

鉴于上述评论你为什么标记答案是正确的?如您所述,Active Admin在其文档中特别声明不需要单独的模型 – sixty4bit 2014-08-21 21:00:10

1

在routes.rb中,指定devise_for:用户 这将恢复用户设计的路线

11

有一件事你可能会丢失正在申报您的用户模型“可注册”,以获得通过设计产生的注册途径。

你应该有这样的事情:

class User < ActiveRecord::Base 
    # Include devise modules 
    devise :database_authenticatable, :registerable, ... 

我就遇到了这个问题,一次,这就是解决它。

+2

我认为activeadmin安装程序会更新您指定的模型,在您使用的情况下它是User并且必须删除:regisrable。像这里建议的那样重新添加这个解决了这个问题。 – Kevin 2015-03-31 17:49:18