Получение моего приложения более сухим с rails и backbone.js - PullRequest
7 голосов
/ 21 февраля 2012

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

Ответы [ 3 ]

1 голос
/ 04 июля 2012

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

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

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

1 голос
/ 17 июля 2012

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

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

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

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

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

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

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

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

0 голосов
/ 22 февраля 2012

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...