我的控制面板上有一个链接 这个链接,调用我的控制器的动作。
<%= link_to "Enviar Correos".html_safe, {:controller => "users", :action => "email_all_users"}, :method => "get", :html => {:style => "color:#FAA732;" } %>
行动:
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 "/users/#{current_user.id}", :flash => { :success => "Los correos fueron enviados" }
end
一切都很好,但是花了很多时间,所以点击链接后我想更改加载图像的链接然后(当动作完成时),我想显示另一个图像(完成!)然后显示链接。
我从不使用ajax。所以我需要一些帮助。
提前致谢。
答案 0 :(得分:0)
答案 1 :(得分:0)
您必须输入链接
:remote => true
进行Ajax调用。
Rails将转到“email_all_users”。在这里你将不得不退出“redirect_to”句子。
在你的视图中,你必须放置一个“JS”视图文件,如“email_all_users.js.erb”,在这里你可以编写必要的javascript来显示信息“Los correos fueron enviados”。
要显示加载图像,例如jQuery,您可以输入以下内容:
$('body').ajaxStart(function() {
$('body>*:not(:hidden)').fadeTo(0, 0.5)
$(this).append('<img id="ajax_loader" src="/images/loading.gif">')
});
$('body').ajaxComplete(function() {
$('body>*:not(:hidden)').fadeTo(0, 1)
$('#ajax_loader').remove()
});