邮寄电子邮件后更新属性

时间:2017-04-03 20:29:37

标签: ruby-on-rails email actionmailer

我正在尝试在发送电子邮件后更新我的用户模型中名为:lastemailed的属性,但无法让它工作。我已经尝试将它放在我的控制器和邮件程序模型中,但它没有奏效。这是我正在使用的代码。谢谢你的帮助!

寄件人/ page_mailer.rb

class PageMailer < ActionMailer::Base

 add_template_helper(PagesHelper)

 default from: "mail@example.com"

 def reminder_send(user)
   @user = user
   mail(to: "#{@user.email}", subject: "Your subject")
 end
end

pages_controller.rb

def send_reminder_mail
 @user = User.find(params[:id])

 PageMailer.reminder_send(@user).deliver
 flash[:notice] = "Reminder sent!"
 redirect_to '/employees'
end

查看调用邮件程序的信息

<%= link_to "Email", :controller => "pages", :action => "send_reminder_mail", :id => u.id %>

邮件工作正常,我无法获取更新属性。谢谢!

2 个答案:

答案 0 :(得分:0)

在您的页面控制器中,在您发送电子邮件之后和重定向之前,请添加:

@user.update_attribute(:lastemailed, "New Value")

答案 1 :(得分:-1)

:lastemailed是一个日期数据类型,我试图使用Time.now()来保存它。

Time.now()是datetime数据类型,因此需要将其格式化为DateTime.now.to_date才能正确更新。

相关问题