Я знаю, что это популярная тема, но я довольно долго искал, пытаясь найти ответ, и, как ни странно, не нашел ничего, что могло бы помочь ...
У меня есть базовое приложение на Rails 3, отображающее записи базы данных в таблице. Отдельное приложение публикует новые записи в базе данных, и я бы хотел, чтобы приложение Rails опрашивало и обновляло для отображения нового контента. Прямо сейчас у меня есть ужасный кусок javascript, просто перезагружающий всю страницу, и он оказывается моим препятствием. У меня есть панель поиска и флажки для удаления нескольких элементов, но они оба сбрасываются при обновлении страницы (опять же, я знаю, что это ужасно и ужасно сломано).
Из того, что я прочитал, я понял, что должен использовать AJAX для опроса базы данных и просто отображать записи в базе данных, которые новее, чем отображаемая самая новая запись. Как точно исполнить это другая история ...
Большинство учебных пособий, которые я обнаружил, устарели, и я не смог запустить унаследованный код. Я новичок как в AJAX, так и в Rails, и я был бы рад, если у кого-нибудь есть какие-либо рекомендации, советы, учебные пособия или личная критика (: P), которые могут указать мне правильное направление.
Спасибо!
РЕДАКТИРОВАТЬ: У меня есть новые записи на странице, но они не отображаются правильно. По какой-то причине они не добавляются как записи в мою таблицу. Вот мой код, надеюсь, вы, ребята, сможете выбрать то, что я пропустил:
* Примечание -> запросы на самом деле являются именами записей моей базы данных. Запросы это модель.
Вид / запросы / index.html.erb
<table class="center">
<div id="requests">
<tr>
<th><%= sortable "Patient_Name", "Patient Name" %></th>
<th><%= sortable "Room_Number", "Room Number" %></th>
<th><%= sortable "Request" %></th>
<th><%= sortable "Urgency" %></th>
<th><%= sortable "count", "Request Count" %></th>
<th><%= sortable "created_at", "Created At" %></th>
<th></th>
</tr>
<%= render @requests %>
</div>
</table>
Частичный запрос: views / запросы / _request.html.erb
<div class="request" data-time="<%= request.created_at.to_i %>">
<tr>
<td><%= request.Patient_Name %></td>
<td><%= request.Room_Number %></td>
<td><%= request.Request %></td>
<td><%= request.Urgency %></td>
<td><%= request.count %></td>
<td><%= request.created_at.getlocal.strftime("%r on %D") %></td>
<td><%= link_to 'Remove', request, :confirm => 'Are you sure?', :method => :delete %></td>
</tr>
</div>
вид / запросы / index.js.erb
$('#requests').append("<%=raw escape_javascript(render(@requests))%>");