2014-10-01 1 views
0

Я очень новичок в javascript, и я пытаюсь настроить опрос в приложении rails, чтобы обеспечить упрощенную передачу действий из модели деятельности. Я внимательно слежу за опросом Railscast здесь: http://railscasts.com/episodes/229-polling-for-changes-revised?view=asciicastНастройка опроса Javascript внутри приложения Rails

Я установил очень простое тестовое предупреждение для запуска при загрузке страницы, но при загрузке страницы предупреждение не появляется. Я надеюсь, кто-то сможет прояснить, почему он не подходит.

Вот вид:

<h4>Activities</h4> 

<div class="well col-sm-5 activity_monitor" data-url="<%=activities_path%>"> 
<% @activities.each do |activity| %> 
Student <%= activity.trackable_id %> began a tutoring session at <%=activity.created_at %> 
<br> 
<% end %> 
</div> 

Вот мой простой CoffeeScript:

ActivityPoller = 
    poll: -> 
    setTimeout @request, 5000 

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

jQuery -> 
    if $('.activity_monitor').length > 0 
    ActivityPoller.poll() 

Вот контроллер:

class ActivitiesController < ApplicationController 
    def index 
    @activities=Activity.all 
    end 
end 

Вот index.js.erb файл:

alert("This is a test alert"); 

Когда я загрузить страницу, это выход я вижу в консоли:

Consider using 'dppx' units, as in CSS 'dpi' means dots-per-CSS-inch, not dots-per-physical-inch, so does not correspond to the actual 'dpi' of a screen. In media query expression: only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-resolution: 144dpi) activities:1 
Uncaught ReferenceError: define is not defined wizard.js?body=1:10(anonymous function) wizard.js?body=1:10 
GET http://localhost:8080/assets/jquery.nanoscroller.min.js.map 404 (Not Found) activities:102 
'Range.detach' is now a no-op, as per DOM (http://dom.spec.whatwg.org/#dom-range-detach). bootstrap3-wysihtml5.min.js?body=1:56 
The "fb-root" div has not been created, auto-creating sdk.js:56 

ответ

0

Я нашел Javascript предупреждения не вызывается, потому что действие контроллера не имеет явный respond_to яваскрипт блок. Что сбивало с толку, так это то, что Railscast не имеет этого блока response_to в исходном коде. Он работает в этой ситуации, потому что нет файла index.html.erb. В моем случае у меня был файл index.html.erb, и поэтому необходимо было указать различные опции response_to, чтобы Rails знал, что делать.