RoR - Devise - Ошибка выхода - неверное количество аргументов - PullRequest
0 голосов
/ 03 апреля 2011

Я пытаюсь внедрить Devise в существующий проект Rails3. Я создал таблицу пользователей и ее в маршрутах и ​​модели. Я могу создать учетную запись и войти в систему, но если я перехожу в / users / sign_out, выдается ошибка:

ArgumentError in Devise/sessionsController#destroy
wrong number of arguments (1 for 0)

Верхняя часть каркаса имеет:

devise (1.2.1) app/controllers/devise/sessions_controller.rb:21:in `signed_in?'
devise (1.2.1) app/controllers/devise/sessions_controller.rb:21:in `destroy'

Моя пользовательская модель имеет следующий код:

# Setup accessible (or protected) attributes for your model
attr_accessible :email, :password, :password_confirmation, :remember_me
# Include default devise modules. Others available are:
# :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and 
devise :database_authenticatable, :registerable, :omniauthable,
    :recoverable, :rememberable, :trackable, :validatable

Я не уверен, где мне следует искать для добавления / удаления аргументов для действия sign_out. Любая помощь будет оценена.

Я посмотрел на строку 21, и она имеет следующее:

def destroy
  signed_in = signed_in?(resource_name)
  Devise.sign_out_all_scopes ? sign_out : sign_out(resource_name)
  ...
end

источник

Так это ошибка Devise? Или я что-то не так настраиваю?

Ответы [ 2 ]

2 голосов
/ 09 июня 2011

Я столкнулся с той же проблемой. Этот пост помог мне: https://github.com/kristianmandrup/cream/issues/24,

То, что я сделал, было установлено config.sign_out_all_scopes = false, в config/initializers/devise.rb файле. По умолчанию этот конфиг имеет значение true.

Надеюсь, это поможет.

0 голосов
/ 09 сентября 2011

У меня просто была такая же проблема.В моем случае это было из-за того, что я определил Sign_in?как вспомогательный метод из предыдущего эксперимента с аутентификацией.Как только я удалил свои прежние вспомогательные методы управления сессиями, все заработало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...