У меня есть приложение Rails, и я использую Ember для интерфейса. Я хотел бы переместить файлы, связанные с Ember, на один уровень ниже в структуре каталогов, но когда я это делаю, шаблоны больше не отображаются.
В простой, ванильной, рабочей версии приложения моя структура каталогов выглядит так:
./app/
assets/
javascripts
application.js
ember-app.js
routes.js
store.js
models/
controllers/
routes/
templates/
views/
с: application.js
//= require jquery
//= require jquery_ujs
//= require handlebars
//= require ember
//= require ember-data
//= require_self
//= require ember-app
App = Ember.Application.create();
и: ember-app.js
//= require ./store
//= require_tree ./models
//= require_tree ./controllers
//= require_tree ./views
//= require_tree ./helpers
//= require_tree ./templates
//= require ./router
//= require_tree ./routes
Все работает нормально. Однако я хотел бы переместить файл ember-app и весь код ember javascript на один уровень ниже, и когда я это сделаю, шаблоны не отображаются. (Часть приложения использует Ember, но не все приложение, и я пытаюсь настроить два отдельных пути через конвейер ресурсов.)
Желаемая структура:
./app/
assets/
javascripts
application.js
embro/
ember-app.js
routes.js
store.js
models/
controllers/
routes/
templates/
views/
с: application.js (пересмотрено: «требовать приложение ember-app» становится «требовать приложение embro/ember-app»)
//= require jquery
//= require jquery_ujs
//= require handlebars
//= require ember
//= require ember-data
//= require_self
//= require embro/ember-app
App = Ember.Application.create();
(ember-app.js не пересматривался.)
Как я уже сказал, после перемещения содержимое шаблона не отображается на экране. Никаких ошибок ни на экране, ни в консоли, просто пустое ember-приложение.
Когда я просматриваю Ember.TEMPLATES в консоли, в списке перечислены все ожидаемые шаблоны. Кроме того, если я поместил нужный контент в шаблоны x-handlebars в соответствующем представлении rails, контент успешно отобразится, как это было с исходной структурой каталогов.
Например, в apps/views/welcome/index.html....
<script type="text/x-handlebars" data-template-name="application">
<h1>hello</h1>
{{ outlet }}
</script>
<script type="text/x-handlebars" data-template-name="index">
<h1>this is the index</h1>
</script>
... и мы готовы снова идти.
но если я оставлю представление рельсов пустым, как я сделал с исходной структурой, это не пойдет.
Интересно, возможно, гем ember-rails требует, чтобы шаблоны рулей присутствовали в app/assets/javascripts/templates, и есть ли способ переопределить это. В документации упоминается добавление параметра templates_root в блок конфигурации приложения, и мне интересно, является ли это ключом. Я немного поиграл, пока не повезло.
Любые идеи?
ОБНОВИТЬ:
Боюсь, мне не повезло с параметром templates_root. В качестве эксперимента я попытался создать новое простое приложение для рельсов и использовать генератор начальной загрузки ember-rails, чтобы запустить его. Все хорошо, но если я попытаюсь просто изменить имя папки шаблонов (например, app/assets/javascripts/templates -> app/assets/javascripts/temple) с соответствующими изменениями в звездочках включает и файлы конфигурации, я получаю те же результаты.
Есть ли шанс, что опция templates_root каким-то образом не работает?
Я использую Ruby 1.9.3, Rails 3.2.11, ember-rails 0.10.0.
Любые указатели на то, где я должен искать в исходном коде ember/ember-rails/handlebars? Стали ковыряться.
Благодарность!