Rails 3.2 - Контроллер приложений + разработка проблемы Current_user - PullRequest
0 голосов
/ 15 марта 2012

В моей модели пользователя определены две роли:

User.role == admin
or
User.role == basic

В моем контроллере приложений :

include MobilizedController

In lib / mobilized_controller.rb :

module MobilizedController
  extend ActiveSupport::Concern

  included do
    before_filter :set_basic_request, :if => :basic_logged_in?
  end 

  private

  def set_basic_request
    request.format = :basic
    prepend_view_path "app/views/basic"
  end 

  def basic_logged_in?
    current_user.role == 'basic'
  end 
end

Все нормально, когда я вошел в систему, он правильно устанавливает Mime Type и отображает мои основные представления. К сожалению, когда я не вошел в систему, я получаю:

Неопределенный метод 'role' для nil: NilClass

что, я думаю, означает, что current_user не установлен, и, следовательно, вызов nil для него не будет работать.

У кого-нибудь есть предложения по этому поводу? Мне нужно иметь возможность отображать страницу входа по умолчанию, если пользователь не вошел в систему, а затем установить Mime Type при входе в систему.

Любая помощь?

1 Ответ

0 голосов
/ 15 марта 2012

В вашем примере для basic_logged_in вы устанавливаете current_user.role в basic. Похоже, вы не устанавливаете роль для администратора или не вошли в систему пользователей.

То есть current_user.role не устанавливается, если вы не вошли в систему или не авторизованы как администратор.

...