У меня в приложении отлично работает authlogic, но я выполняю свои собственные роли (я новичок в рельсах и хотел учиться ...)
Итак, у меня есть модель User, модель Role и модель User Sessions. Пользователь actions_as_authenticated.
В моем application_controller
protect_from_forgery
helper_method :current_user, :is_admin, :is_group_coach, :is_group_leader
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
def is_admin
current_user.role_id == 3
end
def is_group_coach
current_user.role_id == 2
end
def is_group_leader
current_user.role_id == 1
end
Тогда я делаю простой if is_admin в представлении ...
но он возвращает неопределенный метод `role_id 'для nil: NilClass
Я думаю, что это происходит из-за того, что current_user фактически запускается из модели UserSession, а не из User ... Как я могу изменить это для запуска в соответствии с ожиданиями?