2013-01-31 127 views
0

夥計們我在我的控制器上向我的用戶發送電子郵件時有以下操作。rails 3.2 with ajax

def email_all_users 
    User.all.each do |u| 
    if !u.information.nil? 
     if !u.information.business 
      UserMailer.candidate_email(u).deliver 
     else 
       UserMailer.business_email(u).deliver 
     end 
    else 
      UserMailer.no_info_email(u).deliver 
    end 
    end 
    redirect_to "https://stackoverflow.com/users/#{current_user.id}", :flash => { :success => "Los correos fueron enviados" } 
end 

這裏是

<%= link_to "Enviar Correos".html_safe, {:controller => "users", :action => "email_all_users"}, :method => "get", :id => "email_users", :html => {:style => "color:#FAA732;" }, :remote => true %> 
<span id="loading" style="color:rgb(41, 160, 41);display:none;"><i class="icon-spinner icon-spin"></i> Enviando</span> 
<span id="send" style="color:rgb(41, 160, 41);display:none;"><i class="icon-ok-circle"></i> Enviado!</span> 

我創建這個文件email_all_users.js.erb與此內容

$('#email_users').hide(); 
$('#email_users').ajaxStart(function() { 
    $('#loading').show(); 
}); 
$('#email_users').ajaxComplete(function() { 
    $('#loading')..hide(); 
    $('#send')..show(); 
}); 

正如你可以點擊鏈接後看到我的觀點鏈接我想隱藏鏈接,顯示和圖像,我已經在我的加載範圍內(加載是id),然後當動作完成時,我想隱藏加載並顯示我的發送範圍(發送是範圍的id)。

我做錯了什麼,因爲當我點擊應用程序發送電子郵件,但不隱藏鏈接,不顯示加載和發送。

在此先感謝您的幫助

SOLUTION


我將我的email_all_users.js.erb我的資產文件夾,我改成了這樣:

$(document).ajaxStart(function() { 
    $('#email_users').hide(); 
    $('#loading').show(); 
}); 

$(document).ajaxComplete(function() { 
    $('#loading').hide(); 
    $('#send').show(); 
}); 

解決問題。

無論如何。

回答

0

那些ajax調用需要進入一個常規的js文件,而不是對動作的響應。當這段代碼被調用時,ajax請求已經完成。