LoginSignup
10
10

More than 5 years have passed since last update.

Rails Assets で Rails 4 に Backbone.js をいれてみた

Last updated at Posted at 2014-08-11

Rails 4 のプロジェクトで View部分の DOM 操作用途で Backbone.js を試してみようと思い、どうせならと、ちょっと気になってた Rails Assets を利用してみました。メモがてら、ここに試した手順を残しておきます。

ちなみに Rails Assets を使うと、本来は Bower で管理されているパッケージを、gem として管理できるようです。

今回の環境

  • ローカルの Mac に 構築した Rails 環境に導入しています。
    • OS: Mac OS X 10.9.4 (Mavericks)
    • Ruby: 2.1.2
    • Rails: 4.1.1

導入手順

まず、Rails Assets のサイトを見ると、次のように gem を指定する、とあります。

gem 'rails-assets-BOWER_PACKAGE_NAME'

Bower のサイトを見ると、Backbone.js のパッケージ名は backbone のようなので、Gemfile に次のように追記します。

source 'https://rails-assets.org'

〜

gem 'rails-assets-backbone'

追記したら、bundle install を実行します。

$ bundle install --path vendor/bundle
  • 結果:

    スクリーンショット 2014-08-11 16.14.56.png

バージョン 1.1.2 がインストールされたぽい。ついでに Underscore.js も。

次に、application.js に次の2行を追記します。

app/assets/javascripts/application.js
//= require underscore
//= require backbone

いったん、ここで動作確認。ローカルWEBサーバを起動します。

$ ./bin/rails s

とりあえず、エラーは出てないらしい。

スクリーンショット 2014-08-11 15.00.13.png

画面をつくって動作確認するために、適当に Scaffold します。

$ ./bin/rails g scaffold Hoge name:string age:integer
$ ./bin/rake db:migrate

ローカルWEBサーバを起動しなおし、ブラウザで http://localhost:3000/hoges にアクセスしてみます。エラーは出てなさそう。

スクリーンショット 2014-08-11 16.35.24.png

indexページの JavaScript ファイルは app/assets/javascripts/hoges.js.coffee なので、ここに Backbone.js のスクリプトを次のように書きます。

app/assets/javascripts/hoges.js.coffee
# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://coffeescript.org/

obj = new Backbone.Model()
obj.set name: "Hoge"
console.log "obj.name: " + obj.get("name")

ローカルWEBサーバを起動しなおし、ブラウザで http://localhost:3000/hoges にアクセスしてみます。

スクリーンショット 2014-08-11 17.13.05.png

動いてるみたいです^^

おわりに

同じようにして、AngularJS と Vue.js も導入できたのですが、Knockout.js はアセットパイプラインのパスのエラーが出て、上手くいきませんでした..

10
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
10