2012-08-15 11 views
6

Lo he instalado.
y yo tenemos un vínculo: <%= link_to "Sign up", new_user_registration_path %>Rieles: instalé ActiveAdmin y mi enlace de diseño dejó de funcionar

Cuando instalé ActiveAdmin (para el modelo User existente), este enlace dejó de funcionar:

undefined local variable or method `new_user_registration_path' 

Solía ​​git diff para routes.rb y aquí es (líneas añadidas son negro):

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

también <%= link_to "Sign out", destroy_user_session_path, :method => :delete %> ahora lleva a /admin/logout

¿Cómo puedo solucionar este problema?

rutas rastrillo:

 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))) 

yo fuimos revisión de edad, y las rutas fueron:

 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

ejecute 'rutas de rastreo' y liste los pls de salida. – n0denine

Respuesta

1

Parece que está utilizando el mismo modelo tanto para los usuarios normales y los usuarios administradores. ActiveAdmin requiere un modelo separado para administradores. Trate de revertir los cambios realizados por el generador y luego ejecutar este:

rails generate active_admin:resource AdminUser 
rake db:migrate 

Esto creará un modelo AdminUser que no tienen absolutamente ningún vínculo con los usuarios de su sitio.

+0

El problema es que AA no requiere un modelo separado (puedo elegir cualquier modelo en la instalación de AA). Y quiero usar el mismo modelo. – DmitryR

+0

Dado el comentario anterior, ¿por qué marcó la respuesta correcta? Como usted indicó, Active Admin especifica específicamente en su documentación que no se requieren modelos separados – sixty4bit

1

en routes.rb, especifique devise_for: los usuarios Esto restaurará diseñar rutas usuarios

11

Una cosa que usted puede ser que falte es declarar su modelo de usuario se 'inscribible' para obtener las rutas Registrar generados por inventar.

Usted debe tener algo como esto:

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

me encontré con este problema de una vez y esto es lo resolvió.

+2

Creo que el instalador activeadmin actualiza el modelo que usted especifique, en su caso era Usuario y debe haber eliminado el: registrable. Agregar esto de nuevo como se sugirió aquí resolvió este problema para mí. – Kevin

Cuestiones relacionadas