邮寄电子邮件后更新属性

Update Attribute After Mailing Email

我试图在发送电子邮件后更新我的用户模型中名为 :lastemailed 的属性,但无法使其正常工作。我试过将它放入我的控制器和邮件程序模型中,但没有成功。这是我正在使用的代码。感谢您的帮助!

mailers/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 %>

邮件程序工作正常,我只是无法获取要更新的属性。谢谢!

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

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

:lastemailed 是日期数据类型,我试图使用 Time.now().

保存它

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