Как оставаться СУХИМ при использовании шаблонов Javascript и ERB (Rails)

Я создаю приложение Rails, которое использует Pusher для использования веб-сокетов для отправки обновлений непосредственно клиенту. В javascript:

channel.bind('tweet-create', function(tweet){ //when a tweet is created, execute the following code:
  $('#timeline').append("<div class='tweet'><div class='tweeter'>"+tweet.username+"</div>"+tweet.status+"</div>");
});

Это неприятное смешение кода и представления. Поэтому естественным решением было бы использовать шаблон javascript. Возможно, eco или усы:

//store this somewhere convenient, perhaps in the view folder:
tweet_view = "<div class='tweet'><div class='tweeter'>{{tweet.username}}</div>{{tweet.status}}</div>"

channel.bind('tweet-create', function(tweet){ //when a tweet is created, execute the following code:
    $('#timeline').append(Mustache.to_html(tweet_view, tweet)); //much cleaner
});

Это хорошо и все такое, кроме того, что я повторяюсь . Шаблон усов на 99% идентичен шаблонам ERB, которые я уже написал для рендеринга HTML с сервера. Предполагаемый результат / назначение шаблонов усов и ERB на 100% одинаковы: превратить объект твита в твит html.

Как лучше всего устранить это повторение?

ОБНОВЛЕНИЕ: Хотя я ответил на свой собственный вопрос, я действительно хочу видеть другие идеи / решения от других людей - отсюда и награда!

8
задан user94154 28 February 2011 в 01:50
поделиться