Как добавить объект шаблона Пуаро в DOM с помощью методов класса представления — Mustache & Rails 3

У меня есть приложение rails 3, которое захватывает «сообщение» через ajax и вставляет возвращенный json в шаблон усов, я использую Пуаро как для клиентских, так и для серверных шаблонов, но у меня возникла проблема с отображением шаблона после вызова ajax с моими определенными методами класса представления.

Методы отлично работают при рендеринге шаблона усов с сервера в рельсах, но методы не работают в шаблоне javascript, и я не уверен, как впоследствии отображать данные, вставленные в шаблон js, вне шаблона js.

Если мой класс просмотра выглядит так:

module Posts

  class PostView < Poirot::View

    def user_url
       user_path(post.user_id)
    end

    def user_name
      post.user.name
    end

  end

end

и мой шаблон выглядит так:

<h1>{{ title }}</h1> //posts title

<p>Author: <a href="{{ user_url }}"/>{{ user_name }}</a>

Это отлично работает, когда я просто:

<%= render 'post' %>

... все определения включены и выводятся так, как я ожидаю.

Но когда я визуализирую этот шаблон из javascript:

poirot.post(data)

... все методы класса представления недоступны.

Итак, как мне извлечь данные из шаблона js и вставить их как обычные html/усы???

Я думал, что что-то вроде этого будет работать:

var html = poirot.post(data)
$('#showPost').append(html);

Но я все еще получаю шаблон без методов класса представления. Я новичок в js, буду признателен за любую помощь.

Спасибо


person Darcbar    schedule 04.03.2012    source источник


Ответы (1)


Класс представления пуаро может быть интерпретирован только ruby, поэтому при рендеринге шаблона усов с сервера у вас есть доступ к методам класса представления, но при рендеринге шаблона на клиенте через javascript у вас больше нет доступа к этим методам.

Handlebars.js — это расширение языка шаблонов Mustache. Handlebars.js позволяет писать вспомогательные методы JavaScript для использования в шаблонах.

person Darcbar    schedule 07.03.2012