EJS gem в rails 3.1 не будет правильно компилировать шаблоны JavaScript - PullRequest
0 голосов
/ 21 октября 2011

Я пытаюсь использовать гем EJS для шаблонов в рельсах 3.1.Когда мне требуется мой шаблон в файле application.js

//= require_directory ./templates

Вывод, который я получаю на стороне клиента, оборачивает шаблон в анонимную функцию и помещает его в пространство имен, но ... вот и все.Это сгенерированный вывод, который я получаю.

(function() {
  this.JST || (this.JST = {});
  this.JST["templates/index"] = <article class="item <%=type%>">
    <% if (type === "stat") { %>
      <h2>
        <span>70%</span>
        of teens have one or more social network profiles
      </h2>
    <% } else { %>
      <header>
        <a href="/posts/<%=id%>">
          <h3><%=type%></h3>
          <h2><span>- <%=type%></span></h2>
        </a>
      </header>
      <% if (confidential) { %>
        <span class="confidential">Confidential</span>
      <% } %>
      <% if (type === "video" || type === "music") { %>
        <a href="/posts/<%=id%>" class="play">play</a>
      <% } %>
      <a href="/posts/<%=id%>"><img src="<%=image%>" alt="" /></a>
    <% } %>
  </article>;
}).call(this);

Я ожидаю, что шаблон будет скомпилирован в строку.Это опыт, который я имел с Jammit в прошлом.Нужно ли делать это вручную?Я что-то упустил?

Заранее спасибо,

A

Ответы [ 2 ]

2 голосов
/ 01 августа 2012

Sprockets не обрабатывал ваш шаблон через EJS, потому что он не заканчивался на 'ejs'. Вам нужно использовать расширение, оканчивающееся на «.jst.ejs» с файлами шаблона, чтобы обработать их в правильном порядке.

0 голосов
/ 24 октября 2011

Хмм,

Интересно, что установка драгоценного камня rails-backbone, а не ручная установка магистрали в приложении, похоже, решает проблему. Я также переместил шаблоны в основную структуру каталогов. Может быть, гем ejs имеет некоторую зависимость от гема основы (вряд ли, я думаю)? Или это связано с уровнями вложенности каталогов или с тем, как конвейер ресурсов включает в себя каталоги?

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

...