2012-02-15 41 views
0

在軌道3.1,餘爲實現:
1.在柱控制器定義測試行動:rails 3.1:它是ajax嗎?

def test 
    @p = Post.first 
    respond_to do |format| 
     format.js 
    end 
end 

2.定義在routes.rb中:

resources :posts do 
    collection do 
    get 'test' 
    end 
end 

3. index.html中。後文件夾的ERB,我添加了鏈接:

<%= link_to "test", test_post_path, :remote => true %> 

4.創建後文件夾中的文件test.js.erb:

code jQuery 

我的問題是:「我在rails 3.1中實現Ajax嗎?」我不太瞭解rails中的ajax。
如果不是,你能給我一個關於rails 3.1中的ajax的鏈接和我設置的技術,它是什麼?

回答

2

是的,它是ajax。當您在軌道中添加:remote => true到鏈接和表單時,它會自動將數據發送到服務器,而無需刷新瀏覽器上的頁面。這就是ajax在每種語言/腳本中的工作原理。

在你的情況下,你可以把js代碼放到你的test.js.erb文件中來更新/交互頁面(用jQuery)。您可能需要使用設置爲@p的實例變量的屬性更新一些html div元素。

例如,在test.js.erb

$("#some_div").html("<%= @p.title%>"); 

那麼你就基本上由一個Ajax請求到服務器,無需刷新更新與服務器數據的客戶端瀏覽器頁面。

0

您的請求是由Ajax通過您的鏈接完成的。但是,你的行動的回報對你來說可能不是有用的。

您需要在app/view/posts目錄中添加一個test.js.erb文件,並用您想要的Javascript行爲填充它。