Вопрос для новичка: нужно набрать localhost / controller / index в браузере, чтобы получить метод index для отображения в Rails.Зачем? - PullRequest
0 голосов
/ 18 октября 2010

Я новичок в Rails и читаю Simply Rails 2 в Sitepoint, но я использую Rails 3.0.0.В книге мы только что настроили наш первый контроллер (StoriesController), запустили сервер и набрали http://localhost:3000/stories, и он должен был отобразить файл index.html.erb, но вместо этого, когда я набираю этот URL, я получаю «Ошибка маршрутизации: НетМаршрут соответствует "/ story", но когда я набираю http://localhost:3000/stories/index, он работает правильно. Может кто-нибудь объяснить мне, почему rails не загружает файл index.html.erb неявным образом, когда я захожу в localhost / Stories?

1 Ответ

1 голос
/ 18 октября 2010

В зависимости от того, как вы создали свои маршруты (в config\routes.rb). К сожалению, если вы строите контроллер, rails теперь генерирует маршрут, подобный следующему:

get 'posts#index'

Если это restful-контроллер, то лучше написать

resources :posts

Или, если это специальный контроллер (только с индексным действием), вы можете написать

match '/posts' => 'posts#index' 

Чтобы обеспечить запасной вариант, match ':controller(/action(/:id(.:format))) обычно избегают. Потому что это открывает все ваши методы контроллера. Предпочтительным способом является явное указание, как получить доступ к своему сайту.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...