@anasasiakiri4enko

Почему rails ругается ссылаясь на отсутствующие пути в routes.rb?

1. Генерирую чистое приложение
2. Генерирую контроллер welcome и метод Index
3. Настраиваю маршрут на основную страницу - root 'welcome#index'
4. При помощи scaffold команды генерирую - rails g scaffold Item title:string info:text price:decimal
5. Запускаю команду rake db:migrate

Всё успешно проходит и работает

Приступаю к установке gem`a devise
6. В Gemfile добавляю - gem 'devise'
7. Прогоняю bundle install
8. Запускаю команду rails generate devise:install (следую предложенной инструкции и выполняю настройку)
8.1 В файл отвечающий за среду разработки development добавляю config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }
8.2 Пропускаю данную настройку - root to: "home#index" поскольку у меня уже настроен root_path
8.3 В файл отвечающий за шаблон, добавляю - <%= notice %> <%= alert %>
8.4 Пункт #4 пропускаю, поскольку развёртываю локально и версия rails 4.2.6 Пункт #5 тоже пропускаю (генерацию вьюшек девайса)
9. Создаю файл модели девайса командой rails g devise Admin
10. Прогоняю миграцию - всё ок
11. И тут rails ругается вот так: fd9095511c4f4ff8b2169b337545f5c9.png
12. Вот сам файл routes.rb 1d4975deaf1d4c8189c189345f3d0324.png

Самое забавное, что если я в файле routes.rb строку devise_for :admins опущу в самый конец, все url`s сразу заработают, но по моему это бред какой-то. Хорошо, опускаю строку devise_for :admins в самый конец. Смотрю список маршрутов, командой rake routes и вижу: b798d86afa5a495e926cb4f6acac360a.png
Ну думаю, ок. Захожу по адресу localhost:3000/admins/sign_in - ошибка маршрута - No route matches [GET] "/admins/sign_in"
В controller items пробую добавить before_action :authenticate_user! и вижу e6563cd071404167af431f61c2549140.png

Что я делаю не так? Пробую разные способы, опираясь на документацию гема https://github.com/plataformatec/devise Почему rails ругается?
  • Вопрос задан
  • 304 просмотра
Решения вопроса 1
@anasasiakiri4enko Автор вопроса
Заработался, а всё го то нужно было релоаднуть сервер. бывает.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы