valid,invalid

関心を持てる事柄について

8/15学んだこと / Backbone.js × Rails

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

せっかくハマったので後日まとめて記事にしてみる。