我创建了rails g控制器管理员/帖子,它正在寻找管理员/帖子?

时间:2010-12-08 04:31:42

标签: ruby-on-rails

转到:

本地主机/管理/交/

我收到错误:

uninitialized constant Admin::PostsController

然而,生成的控制器是:

class Admin::PostController < ApplicationController

注意错误有's'但生成的类没有。

我的路线是:

namespace :admin do
     resource :post
  end

但是rake路线显示:

admin_post POST   /admin/post(.:format)                  {:controller=>"admin/posts", :action=>"create"}
     new_admin_post GET    /admin/post/new(.:format)              {:controller=>"admin/posts", :action=>"new"}
    edit_admin_post GET    /admin/post/edit(.:format)             {:controller=>"admin/posts", :action=>"edit"}
                    GET    /admin/post(.:format)                  {:controller=>"admin/posts", :action=>"show"}
                    PUT    /admin/post(.:format)                  {:controller=>"admin/posts", :action=>"update"}
                    DELETE /admin/post(.:format)                  {:controller=>"admin/posts", :action=>"destroy"}

3 个答案:

答案 0 :(得分:4)

来自routing guide

  

因为你可能想要使用相同的   用于单一路线的控制器   (/帐户)和复数路线   (/ accounts / 45),奇异的资源图   多个控制器。

运行生成器时,应提供复数名称:

rails g controller admin/posts

答案 1 :(得分:1)

使用map.resources时,它需要复数名称。尝试传入:controller =&gt; :发布作为选项。

答案 2 :(得分:0)

wmorgan是正确的,为什么默认设置不能按预期工作。要修复它,您可以:

  1. 将控制器重命名为Admin :: PostsController(并重命名文件)
  2. 更新所有路线以指向:controller =&gt;“admin / post”而不是