Я обновил приложение, над которым я работаю, с Rails 3.0.0.beta4 до Rails 3.0.0 и обнаружил непредвиденную ошибку.Я использую authlogic для аутентификации, и после обновления маршрут для новой формы сеанса пользователя начал выдавать эту ошибку.
неопределенный метод `user_sessions_path '
Хорошо, я использую контроллер единственного числаназвание.Не уверен, что отличается между бета4 и новым выпуском, который вызвал проблему.
В моем файле rout.rb у меня есть это:
get "user_session/new", :as => :login
get "user_session/destroy", :as => :logout
resources :user_session, :controller => :user_session
, который определяет мой единственный маршрут контроллера.
Чтобы решить проблему, мне пришлось изменить первую строку формы с этой:
<%= form_for @user_session do |f| %>
на эту:
<%= form_for @user_session, :url => user_session_index_path do |f| %>
Что меня странно поражает, так этоназвание маршрута.Запуск рейковых маршрутов показал название маршрута, но я не понимаю, зачем нужен индекс.Я ожидал чего-то большего, чем user_session_path для метода post.Мои маршруты user_session - единственные, действующие таким образом.Все остальные, как я и ожидал.
Вот вывод от рейк-маршрутов:
user_session_index GET /user_session(.:format) {:action=>"index", :controller=>"user_session"}
user_session_index POST /user_session(.:format) {:action=>"create", :controller=>"user_session"}
Это работает, но мне любопытно узнать, сталкивался ли кто-нибудь еще с этим.