简体   繁体   中英

Uninitialized constant Admin::Admin

Using Ruby: 2.3.1p112 and Rails: 3.2.12

I'm trying call a demo method in my controller. So, in my _form.html.erb I have:

<%= link_to 'Demo', "/admin/clinics/"+@clinic.id.to_s+"/demo" %>

In my routes.rb :

match "/admin" => "admin#index", :as => :admin

namespace :admin do
    resources :admin_users
    resources :health_plan_tables
    resources :health_aid_tables
    resources :clients
    resources :clinics
    resources :specialties
    resources :qualifications
    resources :profissionals
    resources :addresses
    resources :documents
    resources :banners
    root :to => 'banners#index'
    get 'logout' => 'devise/sessions#destroy'

    get 'clinics/:id/demo', to: 'admin/clinics#demo', as: 'demo'
end

My clinics_controller.rb is inside the folder controllers/admin , and I just have:

def demo
    print "hello"
end 

So, when I click on link, error message appears Uninitialized constant Admin::Admin . Any ideia how to fix it?

According to the error log you're looking for a controller namespaced under admin/admin/clinics (it says that in the controller part of the params).

Change the bottom route to not include admin (it's already namespaced and you're effectively namespacing it twice):

get 'clinics/:id/demo', to: 'clinics#demo', as: 'demo'

This will route to the correct controller, admin/clinics, instead of admin/admin/clinics

Since you are already defining your demo route inside a namespace there is no need to specify admin/clinics#demo , just clinics#demo will be necessary:

namespace :admin do
    resources :admin_users
    resources :health_plan_tables
    resources :health_aid_tables
    resources :clients
    resources :clinics
    resources :specialties
    resources :qualifications
    resources :profissionals
    resources :addresses
    resources :documents
    resources :banners
    root :to => 'banners#index'
    get 'logout' => 'devise/sessions#destroy'

    get 'clinics/:id/demo', to: 'clinics#demo', as: 'demo'
end

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM