2014-11-19 2 views
0

Я немного смущен относительно того, как правильно обращаться к действию в контроллере рельсов, который НЕ связан с одной конкретной моделью. Файл маршрутизации по умолчанию, похоже, перенаправляет имя действия на «id». Поэтому, если я набираю, скажем,/user/login, я получаю сообщение об ошибке «Не удалось найти пользователя с« id »= login»Доступ к произвольному действию в рельсах

Каков правильный способ доступа к произвольным именам действий в рельсах ?

ответ

1

Проложить маршрут для него, очевидно. Запрос идет таким образом:

  • сначала ударяется маршрут
  • оттуда она попадет действие по диспетчерским
  • [действие может вызвать модель] (необязательно, но общий)
  • контроллера указанных вид и извлекает данные для визуализации
  • вида отправляется обратно в ответ на запрос

resource и resources может быть не очевидно, что они делают. Но на самом деле, это короткие сокращения в соответствующие коллекции маршрутов, которые используются довольно часто, например this is what resources adds. И они не монолиты, они могут быть настроены в соответствии с вашими потребностями. Предоставление возможности только начало, вы можете предоставить блок для определения пользовательских маршрутов действий для этого ресурса, как так:

resources :users do 
    get :login 
end 

Это добавит /users/login маршрута, который отображает на UsersController#login, следуя соглашения Rails.

See this guide для получения более подробной информации и не забудьте запустить rake routes, чтобы узнать, что у вас есть на данный момент.

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