2012-08-15 116 views
0

我是新的rails,我很清楚如何用jquery做ajax,但不明白rails如何做到這一點。在這種情況下,應如何處理rails ajax響應?

簡單的例子來了解如何軌Ajax的工作原理:

的情況下 - 插入Ajax響應導致DIV:

觀點:

<div id="result">1result,2result, </div> 

<%= form_tag('/mycontroller',{:class =>"myform",:remote => true}) do %> 
    <input name="myinput" type="text"> 
    <button type="submit" class="btn"> add </button> 
<% end %> 

控制器:

def create 
     render :json => "3result"; 
end 

什麼我應該添加插入3result內反應成功後的div?和哪個鱈魚我應該添加治療錯誤情況?

回答

1

您可以將此代碼放在您的控制器上

render:update do | page |
頁< < 「$( '#結果')。追加( '3result')」

,並確保你已經安裝了「jQuery的Rails的寶石。

您可以使用該區域來檢查錯誤並呈現不同的東西。

1

我想修改我的控制器代碼,例如:

def create 
    ... 
    respond_to do |format| 
    if (success_condition) 
     format.js 
    else 
     format.js { render :js => "alert('Unsuccessful!');" } 
    end 
    end 
end 

我會創建一個包含視圖稱爲create.js.erb:

$("#result").html("3result") // or whatever you want it to do... 

(注:是一個和Javascript假定您已經安裝的JQuery )

+0

謝謝,但3結果它只是例子它應該是dinamic – Yosef 2012-08-15 20:18:06

+0

當然;你可以使用erb標籤,即:alert(「<%= @ variable.name%>」);'.js.erb文件內部! – niiru 2012-08-15 21:20:44

+0

我需要json響應,而不是js – Yosef 2012-08-15 21:37:19