Devise Signout Routing Error - PullRequest
       20

Devise Signout Routing Error

0 голосов
/ 26 ноября 2011

Я использую Devise 1.5.1 в приложении Rails 3.0.3. Это работает хорошо, с одним исключением: ссылка для выхода выдаёт мне эту ошибку:

Ошибка маршрутизации

неинициализированная константа UsersController

Ссылка, которая ведет к этому:

<%= link_to('Logout', destroy_user_session_path, :method => :delete) %>

Я не создал файл app / controllers / user_controller.rb, но, насколько я понимаю, в этом нет необходимости при использовании Devise, верно?

Если это уместно, мой файл rout.rb выглядит так:

Su::Application.routes.draw do

 get "group/create"

  devise_for :users

  resources :users
  resources :payers
  resources :payments
  resources :categories
  resources :groups

  match "adduser", :to => "groups#adduser"

  root :to => "pages#home"
end

... и app / models / user.rb выглядит так:

class User < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable

  # Setup accessible (or protected) attributes for your model
  attr_accessible :first_name, :email, :password, :password_confirmation, :remember_me, :group_id
end

Я много гуглил и искал по SO, но безрезультатно. Как мне устранить неполадки, как это?

1 Ответ

3 голосов
/ 26 ноября 2011

В вашем файле маршрутов у вас есть

devise_for: пользователи

, который служит для маршрутов для Devise, но

ресурсы: пользователи

- это общий CRUD-маршрут, который заставляет Rails думать, что в вашем приложении есть Users Controller, и что вы что-то делаете с моделью Users в вашей модели.

Ошибка говорит о том, что у вас нет контроллера пользователя, и это правда, но он ищет его из-за маршрута.
Таким образом, либо удалите строку, либо добавьте контроллер пользователей, если вы хотите что-то сделать с моделью пользователей.

Если что-то не понятно, опубликуйте это как комментарий.

...