Хорошо, поэтому я решил использовать backbone.js в своем приложении rails, но я чувствую, что делаю много избыточного кода. У меня есть много моделей и шаблонов в backbone, которые более или менее совпадают с их эквивалентами rails. Есть ли какой-то драгоценный камень, который справляется с этим? Что-то вроде act_as_backbonemodel, которое вы добавляете в свою модель рельсов, которая генерирует базовую модель (с возможностью переопределения для добавления функциональности). Также было бы здорово, если бы существовал какой-то драгоценный камень rails-backbone-view, который позволяет вам помещать ваши шаблоны в каталог представлений и использовать обычные частичные / повторно использовать обычные представления rails.
Сделать мое приложение более СУХИМ с помощью rails и backbone.js
Ответы (3)
Ближайший драгоценный камень, о котором я знаю, это: https://github.com/codebrew/backbone-rails Возможно в сочетании с: https://github.com/netzpirat/haml_coffee_assets
Наличие шаблонов Backbone в app / views не имеет смысла, поскольку это должны быть простые JS (или скомпилированные в js) файлы, которые (почти) не содержат логики. Вам следует подумать о загрузке их из CDN через конвейер активов.
Типичный вариант использования - позволить Backbone обрабатывать логику передних данных и использовать Rails только как ваш API.
Когда я начал использовать Backbone с Rails (почти год назад), мне тоже захотелось такой драгоценный камень (в то время я использовал backbone-rails). Первоначально казалось, что многие вещи дублируются между магистралью и рельсами, но по мере развития разработки я обнаружил, что это скорее исключение, чем правило. Особенно, если вы используете Rails в качестве API, этот вид драгоценного камня может быть полезен только в начале проекта и менее актуален впоследствии.
Я говорю это, потому что большинство наших моделей больше не имеют соответствия 1-1 с нашими ресурсами Rails. Например, хотя требуется информация о людях, эта информация поступает из комбинации ряда ресурсов и исключает большую часть данных в первичных записях о людях. Кроме того, создание и изменение их не уместно в нашем приложении, а создание осуществляется только по приглашению, и это полностью отображается как другой ресурс.
Другие ресурсы не нужны, и все же другие имеют такой небольшой набор функций или данных или данные из нескольких ресурсов, что их создание не сработает.
Поскольку в нашем случае API-интерфейсом является rails, у нас нет дублирования на уровне представления.
Я считаю, что создание настраиваемых генераторов, соответствующих вашему способу работы с магистралью, или наличие нескольких шаблонов в выбранном вами редакторе - более гибкое решение.
Что касается организации, мы добавили backbone в качестве каталога в каталог app / assets / javascripts и создали здесь каталоги для моделей, представлений, маршрутизаторов, помощников и т. Д. Это позволяет использовать coffeescript для написания основы без каких-либо драгоценных камней. Мы используем драгоценные камни jasmine и jasminerice для тестирования нашего основного кода с помощью coffeescript и haml для фикстур (они находятся в каталоге spec / javascripts}.
Что касается шаблонов, все они представляют собой частичные представления рельсов в наших контроллерах, которые отображаются в заголовке. Backbone ищет их по идентификатору и использует их оттуда.
Надеюсь это поможет.
Я только что получил информацию, что платформа бизнес-сообщества xing.com создает такую жемчужину.
посмотрите репозиторий на github: https://github.com/xing/slouch
это еще не задокументировано, но я думаю, что будет легко связаться с парнями, которые его создают.