перезаписать authenticate_user!в разработке жемчужина - PullRequest
1 голос
/ 17 октября 2011

Я перезаписываю свой метод аутентификации в контроллере приложения

def authenticate_worker!
  if user_signed_in? && current_user.worker?
    authenticate_user!
  else
    super
  end
end 

Я продолжаю получать

wrong number of arguments (1 for 0)
app/controllers/application_controller.rb:51:in `authenticate_worker!'

Есть идеи, что мне не хватает? Спасибо!

Ответы [ 2 ]

2 голосов
/ 14 октября 2012

У меня была такая же проблема, и я исправил ее, сделав это:

class ApplicationController < ActionController::Base
  protected
  def authenticate_user!(opts={}) 
    opts[:scope] = :user
    warden.authenticate!(opts) if !devise_controller? || opts.delete(:force)
    flash[:alert] = "I always have to monkeypatch devise... because I'm lazy to use the sorcery gem."
  end
end

Итак, упаковка. скопируйте и вставьте приведенный выше код и замените flash [: alert] на то, что вы хотите сделать после того, как убедитесь, что пользователь аутентифицирован.

Ошибка wrong number of arguments (1 for 0) возникает из-за необязательного параметра opts.

0 голосов
/ 17 октября 2011

нашел это. Это проходило {:force=>true} Не уверен, что делает этот аргумент, хотя ...

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