2012-08-15 9 views
6

Ho installato.
e ho un link: <%= link_to "Sign up", new_user_registration_path %>Rails: ho installato ActiveAdmin e il mio collegamento elaborato ha smesso di funzionare

Quando ho installato ActiveAdmin (per il modello User esistenti), questo link ha smesso di funzionare:

undefined local variable or method `new_user_registration_path' 

ho usato git diff per routes.rb e qui è (linee aggiunte sono nero):

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

anche <%= link_to "Sign out", destroy_user_session_path, :method => :delete %> ora porta a /admin/logout

Come posso risolvere questo problema?

rake routes:

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

ho verificato vecchia versione, e gli itinerari sono stati:

 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

eseguire 'rake routes' ed elencare i pls di output. – n0denine

risposta

1

Sembra che si sta utilizzando lo stesso modello sia per gli utenti normali e gli utenti di admin. ActiveAdmin richiede un modello separato per gli amministratori. Prova ripristinando le modifiche apportate dal generatore e quindi eseguire questo:

rails generate active_admin:resource AdminUser 
rake db:migrate 

Questo creerà un modello AdminUser che avrà assolutamente alcun legame con gli utenti del tuo sito.

+0

Il problema è AA non richiede un modello separato (posso scegliere qualsiasi modello con l'installazione di AA). E voglio usare lo stesso modello. – DmitryR

+0

Dato il commento sopra perché hai contrassegnato la risposta corretta? Come hai affermato, Active Admin afferma espressamente nella sua documentazione che non sono necessari modelli separati – sixty4bit

1

in routes.rb, specificare devise_for: gli utenti Questo ripristinerà ideare utenti percorsi

11

Una cosa che si potrebbe mancare è quello di dichiarare il vostro modello User come 'registrabile' per ottenere i percorsi di iscrizione generate da Devise.

si dovrebbe avere qualcosa di simile:

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

mi sono imbattuto in questo problema una volta e questo è ciò che risolto.

+2

Penso che il programma di installazione di activeadmin aggiorni il modello che hai specificato, nel tuo caso era Utente e deve aver rimosso il: registrabile. Aggiungendo questo come suggerito qui ho risolto questo problema per me. – Kevin

Problemi correlati