Rails梅勒打电话给控制器路线搞砸了

时间:2016-07-13 22:44:56

标签: ruby-on-rails ruby ruby-on-rails-4 actionmailer

我试图在用户提交帖子时发送电子邮件。这里是我在帖子控制器中创建动作的相关部分:

if @post.save
      UserMailer.alert_response(@post, @user).deliver
          respond_to do |format|
              format.js { render layout: false, content_type: 'text/javascript' }
            end

        else
        respond_to do |format|
            format.js { render layout: false, content_type: 'text/javascript' }
            end
          # redirect_to root_url
    end

我已经获得了一个create.js.erb文件,无论帖子是否保存,该文件都会被呈现。我的UserMailer控制器中的alert_response方法如下所示:

def alert_response(post, user)
    @response_post = post
    @parent = post.parent
    @parent_user = @parent.user
    @user = user
    mail to: @parent_user, subject: "Someone Responded to Your Post"
  end

当我在创建操作中不包含UserMailer.alert_upvotes(@ post,@ user).deliver时,一切正常。将呈现create.js.erb文件,即全部。当我包含它时,create.js.erb文件永远不会呈现,并且由于某种原因,我的post控制器的索引操作被触发并且索引视图被呈现。我的UserMailer电话有问题吗?

1 个答案:

答案 0 :(得分:0)

想出来。我不得不创建一个新的PostMailer控制器,其中包含相应的操作。