JST undefined для рельсов 3.1 приложение

Большинство руководств rails 3.1, посвященных конвейеру активов и шаблону javascript, заставляют меня думать, что конвейер активов забирает любые *.jst файлы и удаляет их в JST-переменную, доступную вашим *.js файлам. Однако, когда я пытаюсь загрузить шаблон *.jst, я в настоящее время сталкивается со следующей ошибкой:

Uncaught ReferenceError: JST is not defined

Любые указатели?

Ответ 1

Кажется, что переменная JST устанавливается, если вы правильно включаете элементы шаблона javascript в свой файл app/assets/application.js, чтобы они могли быть включены через конвейер активов:

//= require templates/your_template.jst

Затем включите шаблон javascript в соответствующие рельсы (используя haml):

- content_for :javascripts do
  = javascript_include_tag "templates/your_template"

Ответ 2

если вы используете требуемую строку, например

//= require_tree../templates

убедитесь, что строка выше, строка, которая включает любой файл, дает вам ошибку.

Ответ 3

Все остальные ответы на это, но уточнить...

JST не определяется звездочками, если в манифесте не требуется один или несколько файлов .jst.

Итак, даже если у вас есть //= require_tree ../templates в вашем манифесте, JST по-прежнему будет undefined, пока вы не создадите хотя бы один .jst файл в каталоге шаблонов.

Также обязательно включите драгоценный камень EJS. Если вы включили опорные шины, у вас уже есть.

Ответ 4

Похоже, вам нужен EJS Gem, который включен, если вы используете рельсовую магистраль Gem.

Затем вы просто создаете файл, например app/asset/javascripts/foobar.jst.ejs, и его можно отобразить, вызвав

JST['foobar']()

Надеюсь, что ответит на ваш вопрос.

Ответ 5

Кажется, что JST не имеет ничего общего с Backbone или Underscore, это делается с помощью back-end и приведет к тому, что объект JST и функция JST будут отображаться на ваших интерфейсных страницах.