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» можно найти несколько полезных ссылок, которые помогут Вам заполнить некоторые пробелы в знаниях по данной теме.
Итак, начнём. Просто создайте новое, пустое приложение «рельсов»:
$ cd backbone_app
После этого в Gemfile добавляем следующее:
1. вместо gem ‘sqlite3′ :
gem 'sqlite3'
end
group :production do
gem 'pg'
end
В принципе, Вы этого можете не делать, если собираетесь только поиграться на своей локальной машине. Мне же это необходимо было для последующего развёртывания на Heroku.
2. в группу :assets добавляем
3. а в конец файла добавляем самый важный gem для этого приложения:
После всех этих добавлений можно смело установить все необходимые gem-ы:
Теперь создадим каркас нашего приложения для работы с Backbone.js. Для этого, в строгом соответствии с документацией, выполним следующую команду:
По умолчанию, генератор создаст файлы с расширением *.js.coffee, для использования синтаксиса CoffeeScript. Если Вам более привычно и удобно работать с javascript-ом, то укажите от этом генератору, задав опцию --javascript
Данный генератор создаст несколько директорий в /app:
├── 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). Как, что и с чем едят.
Всем удачи и работающего кода! (-:
Сентябрь 13th, 2012 by none | Комментариев нет