RailsでVue.jsの開発を行う [単一ファイルコンポーネント/Hello Wolrd]
1. プロジェクトの作成
cd ~/ mkdir myapp cd myapp rails new . --webpack=vue --skip-turbolinks --skip-action-mailer --skip-action-mailbox --skip-active-storage --skip-test -d mysql
2. Vue.jsをIE11に対応させる
// yarnでIE11用のパッケージを追加する
yarn add babel-polyfill
// 以下のパッケージが不要であれば実行してください。
yarn remove @rails/actioncable
yarn remove @rails/ujs
// その場合はapp/javascript/packs/application.jsの
// 次を削除して下さい。
require("@rails/ujs").start()
require("channels")
※パッケージの詳細は「package.json」で確認可能です。
3. コントローラー/ビューの作成
bin/rails g controller pages index
4. 各種ファイル
app/javascript/app.vue
<template>
<div id="app">
<p>{{ message }}</p>
</div>
</template>
<script>
export default {
data: function () {
return {
message: "Hello Vue!"
}
}
}
</script>
<style scoped>
p {
font-size: 2em;
text-align: center;
}
</style>
app/javascript/packs/hello_vue.js
// IE11でVue.jsを動作させる
import "babel-polyfill"
// Vue.js
import Vue from 'vue'
// コンポーネント
import App from '../app.vue'
document.addEventListener('DOMContentLoaded', () => {
const app = new Vue({
render: h => h(App)
}).$mount()
document.getElementById('root').appendChild(app.$el)
})
app/views/layouts/application.html.erb
<!DOCTYPE html>
<html>
<head>
<title>Myapp</title>
<%= csrf_meta_tags %>
<%= csp_meta_tag %>
<%= stylesheet_link_tag 'application', media: 'all' %>
<%= javascript_pack_tag 'application' %>
<%= javascript_pack_tag 'hello_vue' %>
</head>
<body>
<%= yield %>
</body>
</html>
app/views/pages/index.html.erb
<div id="root"></div>
config/database.yml
database、username、passwordを設定する。未設定でログインできない場合は「Access denied for user 'root'@'localhost' (using password: NO)」のエラーとなる。
config/routes.rb
Rails.application.routes.draw do get 'pages/index' root to: 'pages#index' end
5. 実行する
プリコンパイル
bin/rails assets:precompile
public/packs/jsに圧縮されたJSファイルが作成されます。
CSRFトークン
AjaxでCSRFトークンが必要な場合は次のように取得します。
headers:{
// JSON
'Content-Type': 'application/json',
// CSRFトークン
'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]').getAttribute('content')
}
スポンサーリンク
関連記事
公開日:2020年06月20日
記事NO:02831
プチモンテ ※この記事を書いた人
![]() | |
![]() | 💻 ITスキル・経験 サーバー構築からWebアプリケーション開発。IoTをはじめとする電子工作、ロボット、人工知能やスマホ/OSアプリまで分野問わず経験。 画像処理/音声処理/アニメーション、3Dゲーム、会計ソフト、PDF作成/編集、逆アセンブラ、EXE/DLLファイルの書き換えなどのアプリを公開。詳しくは自己紹介へ |
| 🎵 音楽制作 BGMは楽器(音源)さえあれば、何でも制作可能。歌モノは主にロック、バラード、ポップスを制作。歌詞は抒情詩、抒情的な楽曲が多い。楽曲制作は🔰2023年12月中旬 ~ | |









