添加带有命名空间admin的控制器作为子文件夹

Mig*_* J. 6 namespaces ruby-on-rails

我在ROR 3.2上有一个简单的cms.使用此文件夹方案:

app | controllers |我的控制器

但我想要一个"管理员"部分,我也可以有一些控制器.所以我创造了

rails生成控制器管理员/用户

app | 控制器|管理员和我的管理控制器

所以我的文件是:

users_controller.rb
class Admin::UsersController < ApplicationController

  def index
    render(:text => "sou o index!")
  end

  def list
    render(:text => "sou o list")
  end

end
Run Code Online (Sandbox Code Playgroud)

在我的路线上我有:

namespace :admin do
    resources :users
  end

match ':controller(/:action(/:id))(.:format)'
Run Code Online (Sandbox Code Playgroud)

我是rails的新手,我无法找到解决方案.无处不在.

问题是我试着去做:

HTTP://本地主机:3000 /管理/用户/列表

我收到此错误:

未知操作无法为Admin :: UsersController找到操作'show'

And*_*all 4

您似乎不了解 Rails 的 RESTful 路由默认情况下是如何工作的。我建议阅读Rails Guides 的资源路由部分resources默认情况下,在路由中使用时,该show操作用于显示特定模型记录。您可以在一定程度上自定义此行为,因为您可以更改操作的 URL show,但不能更改模型中的方法名称:

resources :users, :path_names => { :new => 'list' }
Run Code Online (Sandbox Code Playgroud)

如果您打算使用 RESTful 路由(您应该这样做),则应该删除默认路由 ( match ':controller(/:action(/:id))(.:format)')。此外,您可以rake routes随时从终端运行以查看有关当前路由配置的详细信息。