2010-07-27 2 views
0

Я только что выпустил команду [script/generate scaffold User] для создания моих файлов. Все страницы CRUD работают хорошо, так что это хорошо, и теперь я пытаюсь создать больше страниц. Я создаю метод в файле user_controller.rb следующим образом:Настройка действий для ActionController in Rails

Защиту войти в

#blahblah

конец

Затем создано приложение/просмотров/пользователей/login.html.erb для зрения , Когда я попытался к нему доступ через браузер [http://localhost:3000/users/login] он выдает ошибку:

ActiveRecord :: RecordNotFound (Не удалось найти пользователя с ID = логин): приложение/контроллеры/users_controller.rb: 16: в `шоу '

Я интерпретирую это как использование шоу действий, и он не распознает логин как действие. Не хватает ли какой-либо конфигурации для этого действия? Я совершенно новый для Rails, поэтому я мог бы пропустить что-то тривиальное. Благодаря!

UPDATE Я попытался использовать [script/generate controller User], затем создал методы действий в контроллере и соответствующие представления. Кажется, он работает так, как было предсказано. В чем разница между двумя и тем, что вызывает создание дополнительных методов действий при использовании эскизов сценариев/генерации, недоступно?

ответ

0

Вам необходимо открыть файл маршрутов и добавить сопоставление коллекции на маршрут пользователей. В вашем случае, линия может прочитать map.resources :users, :collection => { :login => :get }

ЗАКАНЧИВАТЬ http://guides.rubyonrails.org/routing.html для получения дополнительной информации о Rails маршрутах

+0

больших! это хорошо работает. Однако почему, если я использую [script/generate controller user], затем добавляю методы в контроллер и их соответствующие представления, они работают без настройки сопоставления? Что делает сценарий/генерировать эшафот? Благодаря! – Paul

+0

Подожди ... Думаю, теперь я понял это. Благодаря! – Paul