2012-08-15 13 views
6

काम करना बंद कर दिया है मैंने स्थापित किया है।
और मैं एक कड़ी: <%= link_to "Sign up", new_user_registration_path %>रेल: मैंने ActiveAdmin स्थापित किया है और मेरे devise लिंक

जब मैं ActiveAdmin स्थापित (मौजूदा मॉडल User के लिए), इस लिंक पर काम करना बंद कर:

undefined local variable or method `new_user_registration_path' 

मैं routes.rb के लिए Git diff का इस्तेमाल किया और यहाँ यह है (जोड़ा लाइनें हैं काला):

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

रन 'रेक मार्ग' और आउटपुट pls सूचीबद्ध करें। – n0denine

उत्तर

1

ऐसा लगता है कि तुम दोनों सामान्य उपयोगकर्ताओं और व्यवस्थापक उपयोगकर्ताओं के लिए एक ही मॉडल का उपयोग कर रहे हैं। ActiveAdmin के लिए व्यवस्थापक के लिए एक अलग मॉडल की आवश्यकता है। इस चलाने के जनरेटर द्वारा किए गए परिवर्तनों को वापस करने और फिर उसे:

rails generate active_admin:resource AdminUser 
rake db:migrate 

यह एक AdminUser मॉडल कि आपकी साइट के उपयोगकर्ताओं के साथ बिल्कुल कोई लिंक होगा पैदा करेगा।

+0

समस्या यह है कि एए को अलग मॉडल की आवश्यकता नहीं है (मैं एए स्थापना पर कोई मॉडल चुन सकता हूं)। और मैं एक ही मॉडल का उपयोग करना चाहता हूं। – DmitryR

+0

उपरोक्त टिप्पणी को देखते हुए आपने सही जवाब क्यों चिह्नित किया? जैसा कि आपने कहा है, सक्रिय व्यवस्थापक विशेष रूप से अपने दस्तावेज़ों में बताता है कि अलग-अलग मॉडल की आवश्यकता नहीं है – sixty4bit

1

routes.rb में, devise_for निर्दिष्ट करें: उन यह पुनर्स्थापित कर देगा उन मार्गों

11

एक बात आप अनुपलब्ध हो सकता है वसीयत द्वारा उत्पन्न साइनअप मार्गों पाने के लिए 'registerable' के रूप में अपने प्रयोक्ता मॉडल घोषित करने के लिए है वसीयत।

आप कुछ इस तरह होना चाहिए:

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

मैं एक बार इस समस्या का सामना किया है और इस यह क्या हल है।

+2

मुझे लगता है कि सक्रियडमिन इंस्टॉलर आपके द्वारा निर्दिष्ट मॉडल को अपडेट करता है, आपके मामले में यह उपयोगकर्ता था और इसे हटा दिया जाना चाहिए: रजिस्टर करने योग्य। जैसा कि यहां सुझाया गया है, इसे वापस जोड़ना मेरे लिए इस समस्या को हल करता है। – Kevin

संबंधित मुद्दे