Проблема разработки Rails 3

У меня странная проблема с моим проектом. У меня есть Rails 3 и Devise запущен и работает, я добавил собственный маршрут:

match '/users', :to => 'users#index', :as => "all_users", :via => "get"

Мои рейк-маршруты возвращают это:

marat@rails:~/projects/test$ rake routes | grep users
      new_user_session GET    /users/sign_in(.:format)                           {:action=>"new", :controller=>"devise/sessions"}
          user_session POST   /users/sign_in(.:format)                           {:action=>"create", :controller=>"devise/sessions"}
  destroy_user_session GET    /users/sign_out(.:format)                          {:action=>"destroy", :controller=>"devise/sessions"}
         user_password POST   /users/password(.:format)                          {:action=>"create", :controller=>"devise/passwords"}
     new_user_password GET    /users/password/new(.:format)                      {:action=>"new", :controller=>"devise/passwords"}
    edit_user_password GET    /users/password/edit(.:format)                     {:action=>"edit", :controller=>"devise/passwords"}
                       PUT    /users/password(.:format)                          {:action=>"update", :controller=>"devise/passwords"}
     user_registration POST   /users(.:format)                                   {:action=>"create", :controller=>"devise/registrations"}
 new_user_registration GET    /users/sign_up(.:format)                           {:action=>"new", :controller=>"devise/registrations"}
edit_user_registration GET    /users/edit(.:format)                              {:action=>"edit", :controller=>"devise/registrations"}
                       PUT    /users(.:format)                                   {:action=>"update", :controller=>"devise/registrations"}
                       DELETE /users(.:format)                                   {:action=>"destroy", :controller=>"devise/registrations"}
     user_confirmation POST   /users/confirmation(.:format)                      {:action=>"create", :controller=>"devise/confirmations"}
 new_user_confirmation GET    /users/confirmation/new(.:format)                  {:action=>"new", :controller=>"devise/confirmations"}
                       GET    /users/confirmation(.:format)                      {:action=>"show", :controller=>"devise/confirmations"}
           user_unlock POST   /users/unlock(.:format)                            {:action=>"create", :controller=>"devise/unlocks"}
       new_user_unlock GET    /users/unlock/new(.:format)                        {:action=>"new", :controller=>"devise/unlocks"}
                       GET    /users/unlock(.:format)                            {:action=>"show", :controller=>"devise/unlocks"}
         user_comments GET    /users/:user_id/comments(.:format)                 {:action=>"index", :controller=>"comments"}
                       POST   /users/:user_id/comments(.:format)                 {:action=>"create", :controller=>"comments"}
      new_user_comment GET    /users/:user_id/comments/new(.:format)             {:action=>"new", :controller=>"comments"}
     edit_user_comment GET    /users/:user_id/comments/:id/edit(.:format)        {:action=>"edit", :controller=>"comments"}
          user_comment GET    /users/:user_id/comments/:id(.:format)             {:action=>"show", :controller=>"comments"}
                       PUT    /users/:user_id/comments/:id(.:format)             {:action=>"update", :controller=>"comments"}
                       DELETE /users/:user_id/comments/:id(.:format)             {:action=>"destroy", :controller=>"comments"}
                 users GET    /users(.:format)                                   {:action=>"index", :controller=>"users"}
                       POST   /users(.:format)                                   {:action=>"create", :controller=>"users"}
              new_user GET    /users/new(.:format)                               {:action=>"new", :controller=>"users"}
             edit_user GET    /users/:id/edit(.:format)                          {:action=>"edit", :controller=>"users"}
                  user GET    /users/:id(.:format)                               {:action=>"show", :controller=>"users"}
                       PUT    /users/:id(.:format)                               {:action=>"update", :controller=>"users"}
                       DELETE /users/:id(.:format)                               {:action=>"destroy", :controller=>"users"}
             all_users GET    /users(.:format)                                   {:controller=>"users", :action=>"index"}

Мой контроллер:

class UsersController::SessionsController < Devise::SessionsController

у меня ошибка:

Expected /home/marat/projects/brandbk/app/controllers/users_controller.rb to define UsersController

Что я делаю неправильно? Например, как я могу добавить действие Index в контроллер Devise, чтобы показать всех пользователей. Спасибо.


person Marat_Galiev    schedule 17.02.2011    source источник
comment
Ваш маршрут уже указан: просто выполните users_path. Это то же самое.   -  person Ryan Bigg    schedule 17.02.2011


Ответы (1)


Измените свой контроллер, чтобы он был просто:

class UsersController < ApplicationController

В настоящее время вы определяете SessionsController, а не UsersController.

person ctide    schedule 17.02.2011
comment
Описанный в вопросе контроллер был создан devise на этапе установки. Почему мне нужно изменить его? Какой класс мне нужно наследовать, чтобы добавить метод индекса? - person Marat_Galiev; 17.02.2011
comment
Да, спасибо за ответ, но я знаю, что это выражение правильное. Но я хочу добавить метод к текущему контроллеру Devise/Users. - person Marat_Galiev; 17.02.2011
comment
Devise уже предоставляет набор действий для /users, которые определены внутри Devise. Вы предоставляете новое действие users#show, поэтому вам необходимо определить UsersController. То, что вы определили, было UsersController::SessionsController, который определяет SessionsController, который имеет доступ к вещам из UsersController. Вы бы унаследовали от ApplicationController, поскольку это еще один контроллер в вашем приложении. Вы хотели бы наследоваться от Devise::SessionsController, если бы вы модифицировали некоторые предоставляемые функции. - person ctide; 17.02.2011
comment
Спасибо за подробный ответ! - person Marat_Galiev; 17.02.2011