Ajax轮询:不显示警告框[rails]

时间:2016-11-21 20:59:33

标签: javascript ruby-on-rails ajax ruby-on-rails-5 ajax-polling

在railscast ajax轮询教程(#229)之后实现ajax轮询。运行服务器后不会弹出警报框。

应用程序/视图/报价/ index.js.erb的:

alert('Hey');
QuotePoller.poll();

应用程序/资产/ javascrips / quotes.coffee:

@QuotePoller =
  poll: ->
    setTimeout @request, 1000

  request: ->
    $.get($('#quotes').data('url'))

jQuery ->
 if $('#quotes').length > 0
  QuotePoller.poll()

应用程序/视图/报价/ index.html.erb:

<div id="quotes" data-url="<%= quotes_url %>">

 <table>
  <thead>
   <tr>
    <th>Content</th>
    <th colspan="3"></th>
   </tr>
  </thead>


  <tbody>
   <% @quotes.each do |quote| %>
    <tr>
     <td><%= quote.content %></td>
     <td><%= link_to 'Show', quote %></td>
     <td><%= link_to 'Edit', edit_quote_path(quote) %></td>
     <td><%= link_to 'Destroy', quote, method: :delete, data: { confirm: 'Are you sure?' } %></td>
   </tr>
  <% end %>
  </tbody>
 </table>
</div>

2 个答案:

答案 0 :(得分:0)

您需要在app / assets / javascripts / application.js中添加以下代码:

$(function() {
   $.getScript("/quotes.js");
});

弹出窗口将显示在localhost:3000 / quotes。

答案 1 :(得分:0)

通过将其添加到我的索引操作

来解决它

应用程序/控制器/ quotes_controller.rb:

respond_to do |f|
  f.js { render :content_type => 'text/javascript' }
  f.html
end