Tworzę sekcję administracyjną mini sklepu. Kod odpowiedzialny za sprawdzenie czy użytkownik jest adminem chciałem przenieść do osobnego kontrolera po którym będą dziedziczyć inne kontrolery w sekcji admin. Fragmenty kodu:
[code=ruby]class ApplicationController < ActionController::Base
[…]
helper_method :current_user, :current_cart
protected
def current_user
return @current_user if defined?(@current_user)
@current_user = current_user_session && current_user_session.user
end
[…]
end[/code]
[code=ruby]class AdminController < ApplicationController
layout “admin”
before_filter :require_admin
private
def require_admin
logger.info(“require_admin called”)
#[…]
logger.info(“user: #{current_user.email}”)
end
end[/code]
class Admin::ProductsController < AdminController
def index
end
#[...]
end
Dostaję następujący wyjątek:
You have a nil object when you didn't expect it!
The error occurred while evaluating nil.email
I klapa, nie umiem sobie z tym poradzić ;( W kontrolerach dziedziczących po ApplicationController wszystko śmiga jak należy.
Problem rozwiązany. W międzyczasie wyczyściłem tabele session, nie zalogowałem się ponownie, stąd pojawił się nil. Wątek do usunięcia, wszystko ok