Rails частичная лучшая практика - PullRequest
1 голос
/ 08 февраля 2011

У меня есть приложение rails, которое использует библиотеку твиттера, чтобы извлекать твиты и отображать их один за другим, на мой взгляд, с помощью jquery.Я немного не уверен в том, что лучший способ передачи твитов от контроллера к представлению - это все же.У меня есть две идеи:

  1. Верните json в твиттере в контроллер / модель, передайте его в представление с помощью jquery и затем построите html с помощью методов построения dom.

  2. Верните твиттер json в контроллер / модель, отредактируйте партиал, который отображает список твитов с html, и передайте этот html партиал с помощью jquery.1012 * Один из этих методов лучше, чем другой?Есть ли лучший способ сделать это?

    Любая помощь будет отличной!

Ответы [ 2 ]

3 голосов
/ 08 февраля 2011

Вам не нужно передавать данные в представление, а затем выполнять рендеринг в JSON.Вы можете просто сделать это в своем контроллере:

render :json => tweets

Я думаю, что это идеальный вариант использования для официального плагина jQuery Templates .Основная функция, tmpl, имеет множество замечательных примеров ее использования.

Я постараюсь быстро обобщить пример из их документации.По сути, вы помещаете шаблон HTML в теги script, например:

<script id="movieTemplate" type="text/x-jquery-tmpl">
    <li><b>${Name}</b> (${ReleaseYear})</li>
</script>

Затем вы получаете данные в объект JSON и передаете их в функцию tmpl следующим образом:

// movies contains your JSON data
$("#movieTemplate").tmpl(movies).appendTo("#movieList");

В этом примере предполагается, что у вас есть элемент ul с идентификатором movieList и он добавляет элемент li в список для каждого фильма, найденного в переменной movies.

Фильмыпеременная будет выглядеть примерно так:

var movies = [
    { Name: "The Red Violin", ReleaseYear: "1998" },
    { Name: "Eyes Wide Shut", ReleaseYear: "1999" },
    { Name: "The Inheritance", ReleaseYear: "1976" }
];
2 голосов
/ 08 февраля 2011

партиалы сделают результат индексируемым, если вы захотите создать html непосредственно на странице.

идея javascript + json должна быть проще для реализации, но не намного.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...