Невозможно установить current_user с помощью Authlogic на Rails 3.0.1 - PullRequest
2 голосов
/ 01 ноября 2010

У меня был официальный плагин authlogic, отлично работающий на Rails 2.3.5. Я преобразовал свое приложение в Rails 3.0.1 и теперь у меня возникли некоторые проблемы.

Я включил в свой gemfile следующий самоцвет gem 'authlogic', :git => 'git://github.com/odorcicd/authlogic.git', :branch => 'rails3'

Когда пользователь входит в систему, сеанс сохраняется. При вызове этого пользовательского сеанса возвращаемое значение равно nil. UserSession.find returns a nil value, поэтому я не могу назначить current_user.

sessions_controller.rb

  def create
   @user_session = UserSession.new(params[:user_session])
   if @user_session.save!
    flash[:notice] = 'Login successful'
    redirect_to root_url
   else
    render :action => 'new'
 end
  end

application_controller.rb

 helper_method :current_user, :current_user_session

 private

  def current_user_session
    return @current_user_session if defined?(@current_user_session)
    @current_user_session = UserSession.find
  end

  def current_user
    return @current_user if defined?(@current_user)
    @current_user = current_user_session && current_user_session.record
  end

Когда пользователь входит в систему, уведомление о флэш-памяти возвращается с 'Login sucessful', но current_user не установлен. Я также попробовал это с официальным плагином authlogic, и ничего не изменилось. Я что-то здесь упускаю?

Спасибо!

Тим

1 Ответ

9 голосов
/ 01 ноября 2010

У меня была именно эта проблема.По какой-то причине это мешало основному аутентификации - чтобы исправить это, я установил allow_http_basic_auth в false.

class UserSession < Authlogic::Session::Base

  allow_http_basic_auth false

end 
...