我正在尝试在发送电子邮件后更新我的用户模型中名为: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 %>
邮件工作正常,我无法获取更新属性。谢谢!
答案 0 :(得分:0)
在您的页面控制器中,在您发送电子邮件之后和重定向之前,请添加:
@user.update_attribute(:lastemailed, "New Value")
答案 1 :(得分:-1)
:lastemailed
是一个日期数据类型,我试图使用Time.now()来保存它。
Time.now()
是datetime数据类型,因此需要将其格式化为DateTime.now.to_date
才能正确更新。