Ember.js с Rails 3.1, получая ошибку «Невозможно найти шаблон» - PullRequest
1 голос
/ 29 января 2012

Я пытаюсь настроить Ember.js с Rails 3.1, и я получаю следующую ошибку в консоли Firebug:

uncaught exception: Error: <(subclass of App.ListOrdersView):ember201> - Unable to find template "app/templates/orders/list".

Я следовал этому руководству . Вот мой файл манифеста, который корректно загружает все js:

//= require jquery
//= require jquery_ujs
//= require jquery-ui
//= require vendor/ember
//= require vendor/ember-rest
//= require_tree ./../lib
//= require app/app
//= require_tree ./../app/models
//= require_tree ./../app/controllers
//= require_tree ./../app/views
//= require_tree ./../app/helpers
//= require_tree ./../app/templates
//= require_self

Это приложение шаблона руля / templates / order / list.handlebars:

<table>
  <thead>
    <tr>
      <th>ID</th>
      <th>Name</th>
    </tr>
  </thead>
  <tbody>
  {{#each orders}}
    {{view App.ShowOrderView orderBinding="this"}}
  {{/each}}
  </tbody>
</table>

И файл Rails view app / views / orders / index.html.haml

%script{:type => "text/x-handlebars"}
  = hb 'view App.ListOrdersView'


:javascript
  $(function() {
    App.ordersController.loadAll(#{@orders.to_json.html_safe});
  }); 

Наконец, гемы для Ember.js в Gemfile:

# Ember
gem 'ember-rails'
gem 'hamlbars', :git => "https://github.com/jamesotron/hamlbars.git"
gem 'rasputin'

Ответы [ 3 ]

1 голос
/ 29 января 2012

Возможно, вам следует использовать либо ember-rails, либо rasputin, но использование обоих камней вместе может привести к непредсказуемому поведению. Так как они оба пытаются зарегистрировать и предварительно скомпилировать ваши шаблоны руля, они являются избыточными по назначению, но их использование отличается.

Если вы посмотрите readme для rasputin, вы увидите, что шаблоны регистрируются без templates на своем пути. Поэтому, если вы хотите использовать этот драгоценный камень, вам нужно объявить свой шаблон как app/orders/list вместо app/templates/orders/list в App.ListOrdersView.

1 голос
/ 29 января 2012

проверьте пути, возможно, они должны быть

//= require_tree ./app/models
//= require_tree ./app/controllers
//= require_tree ./app/views
//= require_tree ./app/helpers
//= require_tree ./app/templates

Невозможно найти шаблон приложения / шаблоны / заказ * s * / list

Это рульШаблон приложения / templates / order / list.handlebars:

см. разницу в пути в s

0 голосов
/ 18 марта 2012

Я столкнулся с похожими проблемами при изменении определений шаблонов и тлеющих камней. Хотя ошибка была той же (жалоба на путь к шаблону - хотя все пути казались правильными), все, что нужно, это rake assets:clean, чтобы разобраться.

...