2012-03-14 3 views
1

Я изучаю, как использовать Rails с «Beginning Rails 3» от Carneiro и Barazi. Конечной целью является создание функционального блога. Эта книга ориентирована на Rails 3.0, и я запускаю 3,2, поэтому я использую jQuery, пока они используют Prototype для Ajax. В какой-то момент они просят вас переключиться с Processing на jQuery, который я пропустил. Позже, когда они начинают использовать код JS, у них есть вы поместите этот кодjQuery in Rails 3 с «Beginning Rails 3»

<%= render @article %> 
<h3>Comments</h3> 
<div id="comments"> 
    <%= render @article.comments %> 
</div> 
<%= link_to "new comment", new_article_comment_path(@article, :format => :js), :remote => true, :id => 'new_comment_link' %> 

в «статье» зрения, и этот код

$("<%= escape_javascript render(:file => 'comments/new.html.erb') %>").insertAfter('#comments'); 
$('#new_comment_link').hide(); 

в файл javscript в представлении new_comment, который работает при создании новых комментариев. Идея состоит в том, что когда вы показываете статью, она отображает все комментарии и ссылку для создания нового комментария. Когда вы нажимаете на ссылку, она загружает поля new_comment из представления new_comment, а не постоянно их там. Однако, когда я загружаю свой блог и нажимаю ссылку «новый комментарий», ничего не происходит. Я пробовал следовать инструкциям из книги (поместить в файл jquery.min.js, вставив в jQuery-адаптер), но он, похоже, не работает (и не следует начинать с этого, я думаю) , Есть идеи? Помощь будет высоко оценена.

ответ

0

1) Вы включили драгоценный камень jquery-rails? Это помогает подключить jquery до рельсов, и вам не нужно вручную добавлять файл jquery.min.js самостоятельно

2) Вы пытались поставить предупреждение в файле javascript, чтобы убедиться, что он запущен вообще?

3) Вы проверили свой журнал разработки, чтобы узнать, что происходит, когда он попадает на этот новый URL-адрес для комментариев, чтобы узнать, что он говорит?

0

Я провел последние три дня отладки подобный вопрос [1]: HTTP: //stackoverflow.com/questions/9666929/simple-rails-ajax-call-wont-process-as-js

Во-первых, Rails 3.2 использует драгоценный камень. Поместите его в свой gemfile и запустите установку пакета.

Во-вторых (как и говорит), вы должны убедиться, что оба включены, хотя они были установлены по умолчанию: В приложение/активы/JavaScripts/application.js Вы должны

//= require jquery 
//= require jquery_ujs 

Обратите внимание, что jquery-ujs на самом деле делает большую часть магии здесь.

Две вещи могут ломаются:

  1. Ваш контроллер не может получить запрос Аякса правильно
  2. ваш ответ может не работать

Чтобы увидеть, в случае, посмотрите на свой выход сервера или журнал. Показывает ли это, что выполняется new_article_comment? И он говорит «Обработка ... как JS»?

+0

ОК, я проверил выходные данные сервера и dev, и контроллер не отвечал правильно - new_article_comment не запускался. Я исправил это сейчас. Большое спасибо. – jclancy

+0

Спасибо, schmanks - Мне нужно получить 100 баллов здесь! Голосовать/принимать ответ! :-) –

+0

На самом деле, я просто понял, что вы новичок в StackOverflow, или SO, как они его называют. Это спасатель, и я надеюсь, что у вас будет отличное время в будущем. Подсказка: когда вы доберетесь до 50 пунктов, вы можете поместить эти комментарии по любому вопросу. –