【发布时间】:2011-04-25 10:09:52
【问题描述】:
我知道这是一个热门话题,但我一直在寻找答案,但奇怪的是没有找到任何能够提供帮助的东西......
我有一个在表格中显示数据库条目的基本 Rails 3 应用程序。一个单独的应用程序将新条目发布到数据库中,我希望 Rails 应用程序轮询并刷新以显示新内容。现在,我有一段糟糕的 javascript 只是重新加载整个页面,它被证明是我的障碍。我有一个搜索栏和检查栏来删除多个项目,但是这些都在页面刷新时重置(再次,我知道这很糟糕而且非常糟糕)。
根据我的阅读,我认为我应该使用 AJAX 来轮询数据库并简单地呈现比显示的最新条目更新的数据库条目。如何精确执行这是另一回事...
我发现的大多数教程都已过时,而且我无法让遗留代码运行。我是 AJAX 和 Rails 的新手,如果有人有任何指导、建议、教程或个人批评 (:P) 可以为我指明正确的方向,我会很高兴。
谢谢!
编辑:我已将新条目拉入页面,但它们根本无法正确呈现。出于某种原因,它们没有作为条目添加到我的表中。这是我的代码,希望你们能够挑选出我错过的东西: * 注意 -> requests 实际上是我的数据库条目的名称。 Requests 是模型。
views/requests/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/requests/_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>
views/requests/index.js.erb
$('#requests').append("<%=raw escape_javascript(render(@requests))%>");
【问题讨论】:
-
刚刚找到link。喜欢 Railscasts,我将通过它来看看它是如何进行的。
标签: ruby-on-rails ajax ruby-on-rails-3