【Rails+Vue】プロジェクト作成

プロジェクト作成

初めからプロジェクトを作る場合

% rails new todo_sample --webpack=vue

Railsアプリに途中からVueを導入する場合

% bin/rails webpacker:install

% bin/rails webpacker:install:vue

開発環境サーバーの設定

foremanでrails serverとwebpack-dev-serverの起動を一つのコマンドで実行する

gem 'foreman'

プロジェクトのルートに設定用のProcfileを作成

# Procfile
rails: bundle exec rails s -p 3000
webpack: ./bin/webpack-dev-server

サーバーを起動

% bundle exec foreman start

erbでjavascriptを読み込む

SPAでは基本的にgetリクエストによって画面遷移することはない。単一のページをレンダリングし、その上でjavascriptによって描画される。

home#indexの設定

すべてのgetリクエストでviews/home/index.html.erbがレンダリングされるよう設定する。

class HomeController < ApplicationController
  def index; end
end
# routes.rb
Rails.application.routes.draw do
  get '*path', to: 'home#index'  # リロード時にもindex.html.erbがレンダリングされるための記述
  root 'home#index'
end
hello_vueの読み込み

app/javascript/packsにhello_vue.js (Vueインスタンスを生成するロジック)が生成される。
home/index.html.erb内で読み込む。

<!-- views/home/index.html.erb -->
<%= javascript_pack_tag 'hello_vue' %>