Сделать мое приложение более СУХИМ с помощью rails и backbone.js

Хорошо, поэтому я решил использовать backbone.js в своем приложении rails, но я чувствую, что делаю много избыточного кода. У меня есть много моделей и шаблонов в backbone, которые более или менее совпадают с их эквивалентами rails. Есть ли какой-то драгоценный камень, который справляется с этим? Что-то вроде act_as_backbonemodel, которое вы добавляете в свою модель рельсов, которая генерирует базовую модель (с возможностью переопределения для добавления функциональности). Также было бы здорово, если бы существовал какой-то драгоценный камень rails-backbone-view, который позволяет вам помещать ваши шаблоны в каталог представлений и использовать обычные частичные / повторно использовать обычные представления rails.


person jonepatr    schedule 21.02.2012    source источник
comment
в последних сводках ничего подобного не упоминалось. поэтому я предполагаю, что такого рода жемчужины еще не существуют: railscasts.com/ эпизодов / 325-backbone-on-rails-part-2   -  person phoet    schedule 21.02.2012
comment
Я только что создал репозиторий на github. Может быть, кто-нибудь поможет мне разработать этот драгоценный камень, потому что он будет моим первым. Репо называется act_as_backbonemodel.   -  person jonepatr    schedule 21.02.2012


Ответы (3)


Ближайший драгоценный камень, о котором я знаю, это: https://github.com/codebrew/backbone-rails Возможно в сочетании с: https://github.com/netzpirat/haml_coffee_assets

Наличие шаблонов Backbone в app / views не имеет смысла, поскольку это должны быть простые JS (или скомпилированные в js) файлы, которые (почти) не содержат логики. Вам следует подумать о загрузке их из CDN через конвейер активов.

Типичный вариант использования - позволить Backbone обрабатывать логику передних данных и использовать Rails только как ваш API.

person Edo    schedule 04.07.2012

Когда я начал использовать Backbone с Rails (почти год назад), мне тоже захотелось такой драгоценный камень (в то время я использовал backbone-rails). Первоначально казалось, что многие вещи дублируются между магистралью и рельсами, но по мере развития разработки я обнаружил, что это скорее исключение, чем правило. Особенно, если вы используете Rails в качестве API, этот вид драгоценного камня может быть полезен только в начале проекта и менее актуален впоследствии.

Я говорю это, потому что большинство наших моделей больше не имеют соответствия 1-1 с нашими ресурсами Rails. Например, хотя требуется информация о людях, эта информация поступает из комбинации ряда ресурсов и исключает большую часть данных в первичных записях о людях. Кроме того, создание и изменение их не уместно в нашем приложении, а создание осуществляется только по приглашению, и это полностью отображается как другой ресурс.

Другие ресурсы не нужны, и все же другие имеют такой небольшой набор функций или данных или данные из нескольких ресурсов, что их создание не сработает.

Поскольку в нашем случае API-интерфейсом является rails, у нас нет дублирования на уровне представления.

Я считаю, что создание настраиваемых генераторов, соответствующих вашему способу работы с магистралью, или наличие нескольких шаблонов в выбранном вами редакторе - более гибкое решение.

Что касается организации, мы добавили backbone в качестве каталога в каталог app / assets / javascripts и создали здесь каталоги для моделей, представлений, маршрутизаторов, помощников и т. Д. Это позволяет использовать coffeescript для написания основы без каких-либо драгоценных камней. Мы используем драгоценные камни jasmine и jasminerice для тестирования нашего основного кода с помощью coffeescript и haml для фикстур (они находятся в каталоге spec / javascripts}.

Что касается шаблонов, все они представляют собой частичные представления рельсов в наших контроллерах, которые отображаются в заголовке. Backbone ищет их по идентификатору и использует их оттуда.

Надеюсь это поможет.

person Emery    schedule 17.07.2012

Я только что получил информацию, что платформа бизнес-сообщества xing.com создает такую ​​жемчужину.

посмотрите репозиторий на github: https://github.com/xing/slouch

это еще не задокументировано, но я думаю, что будет легко связаться с парнями, которые его создают.

person phoet    schedule 22.02.2012