В зависимости от того, сколько маршрутов у вас есть, вы можете добавить свои маршруты Vue в routes.rb
и отправить их в корневой маршрут приложения Vue. например Webpacker рендерит ваш пакет js с контроллером # action vue_controller#app
. Маршрутизатор вашего приложения Vue использует /user/profile
. В routes.rb
добавьте маршрут:
get "/user/profile" => "vue_controller#app" # <- The controller action rendering your Vue pack
Если кажется невозможным переопределить каждый маршрут Vue в routes.rb
, вы можете захотеть взглянуть на универсальный запасной маршрут, который отправляет их в действие контроллера приложения vue. Пока вы не меняете маршрут, а просто отвечаете действием контроллера Vue, маршрутизатор Vue позаботится о том, чтобы при загрузке страницы отображались правильные компоненты для этого маршрута.
В Rails 4 вы можете использовать что-то вроде ответов в этом SO-вопросе, чтобы помочь вам с настройкой "универсального" маршрута Rails-универсальный маршрут .
РЕДАКТИРОВАТЬ: Использование поймать весь маршрут приводит к некоторым проблемам с 404. Если пользователь запрашивает маршрут, который не существует, приложение Rails все равно отправит ему пакет Vue. Чтобы это исправить, вам нужно добавить некоторую обработку неизвестного маршрута в маршрутизаторе Vue, чтобы отобразить что-то вроде страницы 404.