2016-01-05 10 views
0

У меня есть две модели моделей, а именно: user и technician. Я хочу technicians быть направлены на конкретную страницу при их входе в систему, так что я реализовал ее в соответствии с DEViSE учебника и поместить его в контроллер приложенияRails Devise after_sign_in_path_for (ресурс)

def after_sign_in_path_for(resource) 
    case resource.class 
    when technician 
    new_services_path 
    when user 
    root_path 
    end 
end 

, но я получаю эту ошибку. [! [Введите описание изображения здесь] [1]] [1] что мне здесь не хватает?

+0

@raj Спасибо за вашу помощь, но я получил эту ошибку, когда я реализовал предложения, неопределенный метод 'technician_url» для # 'Если опции. пусто? recipient.send (метод, * args) еще recipient.send (метод, * args, options) end' – user2261608

+0

Прохладный, я понял, что вам следует следовать принципу изоляции SO. Я чувствую, что на оригинальный вопрос ответили. Вы должны пойти и принять ответ на этот вопрос. Затем отправьте еще один вопрос. Вы также можете опубликовать ссылку на новый вопрос, чтобы мы могли лучше помочь вам и сообществу – RAJ

ответ

1

Занятия записываются заглавной буквы: Technician, User. Следующий код должен работать:

def after_sign_in_path_for(resource) 
    case resource.class 
    when Technician 
    new_services_path 
    when User 
    root_path 
    end 
end 
0

Вы можете попробовать это.

def after_sign_in_path_for(resource) 
    case resource.class.name 
    when "Technician" 
    new_services_path 
    when "User" 
    root_path 
    end 
end 
3

Необходимо обновить switch. resource.class вернет класс ресурса (User или Technician). Таким образом, вы измените метод следующим образом:

def after_sign_in_path_for(resource) 
    case resource.class 
    when Technician 
    new_services_path 
    when User 
    root_path 
    end 
end 
Смежные вопросы