Я создал рельсы g контроллер admin / post и он ищет admin / posts? - PullRequest
2 голосов
/ 08 декабря 2010

Собирается:

локальный / администратор / запись /

Я получаю ошибку:

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

Ответы [ 3 ]

4 голосов
/ 08 декабря 2010

Из руководства по маршрутизации :

Поскольку вы, возможно, захотите использовать один и тот же контроллер для единственного маршрута (/ account) и множественного маршрута (/ account / 45), единичные ресурсы отображаются на множественные контроллеры.

Когда вы запускаете генератор, вы должны указать множественное имя:

rails g controller admin/posts
1 голос
/ 08 декабря 2010

При использовании map.resources ожидается множественное число имен. Попробуйте передать: controller =>: post в качестве опции.

0 голосов
/ 01 июня 2011

В wmorgan правильно указано, почему значение по умолчанию не работает так, как вы ожидали. Чтобы это исправить, вы можете:

  1. переименуйте контроллер в Admin :: PostsController (и переименуйте файл тоже)
  2. обновить все маршруты, чтобы указать: controller => "admin / post" вместо
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...