2011-05-27 60 views
6

我正在測試創建link_to與:remote => true以獲取ajax遠程鏈接處理。鏈接data-remote =「true」未處理爲JSON

<%= link_to "Get Books", "/books", :remote=> true %> 

爲Rails3中的助手正確解析在視圖中的代碼和我得到的源:

<a href="/books" data-remote="true">Get Books</a> 

而且我的JavaScript包括在默認:

<%= javascript_include_tag :defaults %> 

和源頭解析爲:

<script src="/javascripts/jquery.js?1302296105" type="text/javascript"></script> 
<script src="/javascripts/rails.js?1302139751" type="text/javascript"></script> 
<script src="/javascripts/application.js?1305999509" type="text/javascript"></script> 

而在控制我有:

respond_to :html, :json 

然而,當我點擊它加載定期用鏈路,而不是Ajax和服務器上的日誌:

處理由BooksController中#指數爲HTML

我錯過了什麼?

回答

7

確保您已經安裝了jQuery UJS Plugin

添加到您的Gemfile:

gem 'jquery-rails', '>= 1.0.3' 

然後運行:

bundle install 
rails g jquery:install 
+2

謝謝! - 這當然是問題所在。我還必須在config/application.rb中運行「rails generate jquery:install」並註釋掉以前添加的「config.action_view.javascript_expansions [:defaults] =%w(jquery rails)」,我想我可以手動更改它包括jquery_ujs但註釋掉這條線似乎回落到正確的默認「默認值」。所有工作現在! – Streamline 2011-05-28 01:52:33

3

我有一個類似的問題:我期望的遠程鏈接作爲JS請求處理,但Rails以某種方式將其作爲HTML處理。

問題是我們沒有指定格式,然後Rails可以根據服務器配置選擇任何格式。

TL; DR;指定使用遙控器時的請求類型:

<%= link_to "Get Books", "/books", data: {remote: true, type: "script"} %> 
+0

我有一個類似的問題,我愚蠢地覆蓋了數據類型屬性。重命名數據屬性解決了它。 – oowowaee 2017-03-06 02:09:41