jQuery в Rails 3 с «Beginning Rails 3» - PullRequest
1 голос
/ 14 марта 2012

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

<%= 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), но, похоже, он не работает (и я думаю, его не следует вставлять для начала) , Есть идеи? Помощь будет высоко ценится.

Ответы [ 2 ]

0 голосов
/ 14 марта 2012

Последние три дня я потратил на устранение аналогичной проблемы [1]: /7013037/prostoi-rails-ajax-call-ne-budet-obrabatyvatsya-kak-js

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

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

//= require jquery
//= require jquery_ujs

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

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

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

Чтобы увидеть, в чем дело, посмотрите на вывод вашего сервера или журнал. Это показывает, что new_article_comment выполняется? И он говорит "Обрабатывается ... как JS"?

0 голосов
/ 14 марта 2012

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...