rails,如何在ajax请求完成后编写回调函数

时间:2012-04-05 04:26:03

标签: ruby-on-rails ajax callback

我想知道在ajax请求完成后如何/在哪里编写回调函数?

我正在构建一个Twitter应用,并且在用户点击“关注”后尝试发送电子邮件通知。使用ajax完成以下/取消关注。当用户点击关注时,我有......

  def follow!(other_user)
    relationships.create!(followed_id: other_user.id)
  end

反过来调用

  def create
    @user = User.find(params[:relationship][:followed_id])
    current_user.follow!(@user)
    respond_to do |format|
        format.html {redirect_to @user}
        format.js
    end

    UserMailer.is_now_following(@user, current_user).deliver
  end

然而,通过添加UserMailer行,它很多都滞后于我的ajax。我应该在哪里/如何提出电子邮件请求呢?在ajax完成后我想到了一个回调函数,但我不知道在哪里添加它或如何添加。

抱歉,我还是很陌生。非常感谢!

嗯,我发现可能这样做的好方法是使用jquery。我决定按下按钮

<%= f.submit "Follow", :class => "btn btn-large btn-primary", 
        :id => "follow_button"%>

一个id并使用了jquery

$("#follow_button").bind('ajax:success', function() {

});

之后发送电子邮件。但是,我真的很确定我如何传递变量。我希望实现的最终路线是

UserMailer.is_now_following(@user, current_user).deliver

current_user是一个函数btw,它指定/返回current_user

我该怎么做?谢谢!