Это близко, но вы можете попробовать:
map.resources :users, :member => { :login => :get }
Их ключевое отличие состоит в том, что ключевое слово :collection
следует использовать, когда ваш новый маршрут имеет дело с коллекциями этого ресурса (например, «индекс»), а не с одним экземпляром ресурса (например, ведение журнала одним пользователем) в).
Также, если /users/user_id/login
перенаправляет на страницу входа, вы все еще выполняете там операцию GET. Когда вы отправляете форму, вы хотите использовать POST. Итак, по сути вы говорили Rails ожидать POST, когда он получал GET. Я могу только предположить, что он полностью игнорировал маршрут login
и просто возвращал любого пользователя, который был представлен в URL.