未初始化的常量管理员::管理员



使用 Ruby:2.3.1p112和 Rails:3.2.12

我正在尝试在我的控制器中调用演示方法。所以,在我的_form.html.erb中,我有:

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

在我的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

我的clinics_controller.rb在文件夹controllers/admin内,我只有:

def demo
print "hello"
end 

因此,当我单击链接时,错误消息Uninitialized constant Admin::Admin出现。 任何想法如何解决它?

由于您已经在命名空间中定义了demo路由,因此无需指定admin/clinics#demo,只需clinics#demo

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

根据错误日志,您正在寻找在 admin/admin/clinics 下命名空间的控制器(它在参数的控制器部分显示(。

将底部路由更改为不包含 admin(它已经命名空间,并且您有效地将其命名为两次(:

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

这将路由到正确的控制器,管理员/诊所,而不是管理员/管理员/诊所

最新更新