在执行操作时显示加载图像



我的控制面板上有一个链接这个链接,调用我的控制器的一个动作。

<%= 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。所以我需要一些帮助。

提前感谢。

从链接生成加载器图像

Ajax Image Link

你需要编写javascript来显示点击链接时的图像

和隐藏图像加载完成。

这个问题对你有用吗

答案链接

你必须输入你的链接

:remote =>  true

进行Ajax调用。

Rails将转到"email_all_users"。在这里,你必须退出"redirect_to"语句。

在你的视图中,你必须放置一个"JS"视图文件,如"email_all_users.js"。,在这里你可以编写必要的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()
});

相关内容

  • 没有找到相关文章

最新更新