Backbone.js + Coffeescript + Rails

Не так давно я написал статью о создании SPA на основе Spine.js в качестве front-end-а и «рельсов» в качестве back-end-а. Spine.js очень интересная штука, очень простая и понятная, но для создания не очень сложного приложения. Как только приложение начинает разрастаться, начинаются проблемы. Как по мне, то главная проблема — это роуты, разбросанные по разным файлам, малопонятный substack. Остальное уже как-то по мелочи.

Поигравшись со Spine.js, я переключил свой взор на более обкатанную и несколько более распространённую библиотеку: Backbone.js. Как оказалось, он не на много сложнее Spine.js. Основное неудобство было в том, что все туториалы написаны для javascript-a, а мне уже давно как-то по душе Coffeescript. Именно поэтому я решил написать несколько постов о том, как их подружить друг с другом: Backbone.js, CoffeeScript, Twitter Bootstrap и «рельсы».

Как обычно, весь исходный код доступен на Github-е, а работающее приложение можно увидеть на Heroku.

Данная статья будет вводная, много кода в ней не будет. Все остальные программные изыскания будут несколько позже. На странице работающего примера в разделе «Resources» можно найти несколько полезных ссылок, которые помогут Вам заполнить некоторые пробелы в знаниях по данной теме.

Итак, начнём. Просто создайте новое, пустое приложение «рельсов»:

$ rails new backbone_app --skip-bundle
$ cd backbone_app

После этого в Gemfile добавляем следующее:

1. вместо gem ‘sqlite3′ :

group :development do
    gem 'sqlite3'
end

group :production do
    gem 'pg'
end

В принципе, Вы этого можете не делать, если собираетесь только поиграться на своей локальной машине. Мне же это необходимо было для последующего развёртывания на Heroku.

2. в группу :assets добавляем

gem 'twitter-bootstrap-rails'

3. а в конец файла добавляем самый важный gem для этого приложения:

gem 'backbone-on-rails'

После всех этих добавлений можно смело установить все необходимые gem-ы:

$ bundle install

Теперь создадим каркас нашего приложения для работы с Backbone.js. Для этого, в строгом соответствии с документацией, выполним следующую команду:

$ rails generate backbone:install

По умолчанию, генератор создаст файлы с расширением *.js.coffee, для использования синтаксиса CoffeeScript. Если Вам более привычно и удобно работать с javascript-ом, то укажите от этом генератору, задав опцию --javascript

Данный генератор создаст несколько директорий в /app:

app/assets/
├── javascripts
│ ├── application.js
│ ├── backbone_app.js.coffee
│ ├── collections
│ ├── models
│ ├── routers
│ └── views
└── templates

Лично я сразу переименовываю файлы, типа backbone_app.js.coffee, на app.js.coffee. Мне так удобнее. Хотя… лукавлю (-: Это у меня после прочтения вот этой статьи. Кстати, тоже рекомендуется к прочтению.

Рекомендую ознакомиться с содержимым файлов application.js и app.js.coffee после выполнения предыдущей команды.

В принципе, наше приложение готово для дальнейшей работы с Backbone.js. В последующих частях я расскажу у роутерах, моделях, коллекциях и отображениях(views). Как, что и с чем едят.

Всем удачи и работающего кода! (-:

Недавние записи

Оставить комментарий