【发布时间】:2016-07-14 07:26:51
【问题描述】:
我正在尝试在用户提交帖子时发送电子邮件。以下是我的创建操作在 post 控制器中的相关部分:
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 调用有问题吗?
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-4 actionmailer