2010-12-08 5 views
2

へ:rails gコントローラadmin/postを作成しましたが、admin/postsを探していますか?ゴーイング

はlocalhost /管理/ポスト/

私はエラーを取得:

uninitialized constant Admin::PostsController 

まだ生成コントローラーをされています

class Admin::PostController < ApplicationController 

お知らせエラーは 'はs 'が生成されたクラスはそうではありません。

namespace :admin do 
    resource :post 
    end 

しかし、すくいルートは示しています:

私のルートがある

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"} 

答えて

4

routing guide

Because you might want to use the same controller for a singular route (/account) and a plural route (/accounts/45), singular resources map to plural controllers.

あなたはジェネレータを実行すると、あなたは複数形の名前を提供する必要がありますあなたが期待通りデフォルトが機能しなかった理由として

rails g controller admin/posts 
1

map.resourcesを使用して、それが複数の名前を期待しています。渡してみてください:controller =>:postとしてオプションを指定してください。

0

wmorganが正しいことを。それを修正するには、次のいずれかを実行します

  1. はを指すようにすべてのルート更新
  2. ::管理者にPostsControllerのを、コントローラの名前を変更(とあまりにもファイルの名前を変更):コントローラ=>「管理者/ポスト」の代わりに
関連する問題