【问题标题】:Update Attribute After Mailing Email发送电子邮件后更新属性
【发布时间】:2017-04-06 23:12:55
【问题描述】:

我正在尝试在发送电子邮件后更新我的用户模型中名为 :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 %>

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

【问题讨论】:

    标签: ruby-on-rails email actionmailer


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-11-13
        • 2017-12-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多