1

コントロール パネルにこのリンクがあります。コントローラーのアクションを呼び出します。

<%= 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 を使ったことがありません。だから私はいくつかの助けが必要です。

前もって感謝します。

4

2 に答える 2

0

あなたはあなたのリンクを入れなければなりません

:remote =>  true

Ajax 呼び出しを行います。

Rails は「email_all_users」に送信されます。ここで、「redirect_to」文を終了する必要があります。

ビューに「email_all_users.js.erb」のような「JS」ビュー ファイルを配置する必要があります。ここに、情報「Los correos fueron enviados」を表示するために必要な JavaScript を記述できます。

たとえば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()
});
于 2013-01-13T16:20:09.253 に答える
0

リンクからローダー イメージを生成する

Ajax 画像リンク

リンクをクリックしたときに画像を表示するには、JavaScript を記述する必要があります。

ロード完了時に画像を非表示にします。

この質問が役に立ちますように

答えのリンク

于 2013-01-13T16:12:55.663 に答える