Backbone.js
Backbone.jsのサンプルTodoアプリを引き続き見た後、RailsアプリでBackbone.jsを使う - Qiita を参考にRailsとBackboneでTodoアプリを動かしてみた。
記事通りに進めようとしたが、情報が古くてうまくいかなかった。2011年なので仕方ない…Backboneをいまさら始めてる感が辛い。
いくつかハマったところをメモ。
* scriptの読み込み順が制御できない
application.jsには以下のように記載しているのに読み込み順が逆になっていた。
//= require underscore //= require backbone
よくわかってないがturbolinkとやらの仕組み?でjsの読み込み順がコントロールできていなかったぽい。application.jsにあった//= repuire turbolink
を削除したら同ファイルに記載した順にロードされるようになった。
(2015/8/16追記) rails-backbone gem でインストールしたら問題なかったので↑は不要と思われる。
- 本家のTodoアプリの実装が変わっていた
プロパティ名やDOMが変わっているので本家の最新に合わせる必要がある。
- Railsのバージョン差異
Ajax処理がすべて失敗しており、サーバサイドでauthエラーみたいなのが出ていた。Railsのどこかのバージョンから、CSRF対策でトークンをリクエストに含めないといけなくなったとのこと。RailsのCSRF対策の仕組みについて - Programming log - Shindo200などで回避策が紹介されていたが、結局Rails用のBackboneを使うことにした。
Gemfileにgem 'rails-backbone'
を追加し、以下のコマンドでインストールし、自分で書いた//= require *
を削除したらうまく動くようになった。
$ bundle install $ rails g backbone:install
せっかくハマったので後日まとめて記事にしてみる。