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

时间:2012-02-12 00:16:38

标签: ruby-on-rails namespaces

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

app | controllers | my 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

在我的路线上我有:

namespace :admin do
    resources :users
  end

match ':controller(/:action(/:id))(.:format)'

我是rails的新手,我无法找到解决方案。无法在任何地方找到它。

问题是 我试着去做:

  

http://localhost:3000/admin/users/list

我收到此错误:

  

未知操作无法找到操作'show'   管理员:: UsersController

2 个答案:

答案 0 :(得分:4)

您似乎无法理解Rails的RESTful路由默认如何工作。我建议阅读Resource Routing section of the Rails Guides。默认情况下,在路由中使用resources时,show操作用于显示特定模型记录。您可customize this behavior在某种程度上可以更改show操作的网址,但不能更改模型中的方法名称:

resources :users, :path_names => { :new => 'list' }

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

答案 1 :(得分:1)

然而,在正确的轨道上,还有一些步骤需要完成后端管理CRUD部分的解决方案。请查看以下如何自行创建的示例:

https://stackoverflow.com/a/15615003/2207480