2010-10-26 4 views
0

Я только начинаю с рельсов, и у меня очень простой случай. У меня есть «домашний» контроллер. В этом контроллере есть один «индекс» действия. Когда я иду в ~/home, я получаю сообщение об ошибке:Вопросы маршрутизации с рельсами

uninitialized constant HomesController (Я заметил единственное/множественное число).

Это первое, что я не получу (я думал, что он автоматически перейдет в ~/home/index).

Вторая вещь, если я пойду в ~/home/edit (обратите внимание, что это действие еще не существует), я получаю также: uninitialized constant HomesController Но если я иду в ~/дом/шоу (шоу не существует, а) Я получаю другое сообщение об ошибке:

No route matches "/home/show" 

Как я могу получить 2 Differents ошибки по той же причине (inexistant действия). И в чем дело с этой константой?

Спасибо

Редактировать Я бегу рельсы 3.0

Вот мой routes.rb файл

Topnotch::Application.routes.draw do 
    resources :subscriptions 
    resource :home 

    get "home/index" 

    get "subscriptions/index" 

    root :to => "home#index" 
end 
+0

какая версия рельсов вы используете и что у вас в настоящее время есть в 'routes.rb'? –

+0

рельсы 3. Я только что редактировал исходный вопрос. –

ответ

1

Оказалось, маршруты были верны, я просто не использовал их правильно! rake routes помог.

1
  1. Вы должны добавить ресурс "дом" в route.rb.
  2. Контроллеры считаются множественными.
  3. Если вы новичок в рельсах, я предлагаю вам начать использовать генераторы - просто откройте терминал в папке проекта и введите «script/generate scaffold home» (в rails3 это будет «rails g home»)
+0

Я использовал генератор для создания контроллера (мне не нужна модель для моего домашнего контроллера!). Кроме того, у меня уже есть ресурс для дома в route.rb). Должен ли я выбрать множественное имя для контроллера? –

1

Изменение корневого пути, как показано ниже: -

корень: в => "дом # индекс".

Вы должны использовать форму множественного числа в маршрутах.

Смежные вопросы