簡體   English   中英

在Rails 3中使用“ Beginning Rails 3”的jQuery

[英]jQuery in Rails 3 with “Beginning Rails 3”

我正在學習如何在Carneiro和Barazi的“ Beginning Rails 3”中使用Rails。 最終目標是建立一個實用的博客。 本書面向Rails 3.0,並且我正在運行3.2,因此我在使用Prototype處理Ajax時使用jQuery。 有一次他們要求您從Processing切換到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();

放入new_comment視圖中的javscript文件中,該文件在創建新注釋時起作用。 其想法是,當您顯示文章時,它會顯示所有評論以及用於創建新評論的鏈接。 當您單擊鏈接時,它將從new_comment視圖中加載new_comment字段,而不是一直將它們放在那里。 但是,當我加載博客並單擊“新評論”鏈接時,沒有任何反應。 我嘗試按照書中的說明進行操作(放入jquery.min.js文件,放入jQuery適配器),但它似乎不起作用(我認為不應將其放在開頭) 。 有任何想法嗎? 幫助將不勝感激。

1)您是否包含了jquery-rails gem? 它有助於將jquery固定在軌道上,並且您不需要自己手動添加jquery.min.js文件

2)您是否嘗試過將警報放入javascript文件中以確保其完全運行?

3)您是否檢查過開發日志以查看當它擊中新的注釋URL時會發生什么情況?

我已經花了三天時間調試類似的問題[1]:http://stackoverflow.com/questions/9666929/simple-rails-ajax-call-wont-process-as-js

首先,Rails 3.2使用了gem。 將其放在您的gemfile中並運行bundle install。

其次(如頁面所示),盡管它們都是默認設置的,但您需要確保兩者都包括在內:在app / assets / javascripts / application.js中,您應該

//= require jquery
//= require jquery_ujs

請注意,jquery-ujs實際上在這里起到了很多作用。

可能會打破兩件事:

  1. 您的控制器可能未正確收到ajax請求
  2. 您的回應可能無效

若要查看情況,請查看服務器輸出或日志。 是否表明new_article_comment正在執行? 並顯示“正在處理...作為JS”嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM