【问题标题】:How can Rails Mailer view update an ActiveRecord record? (update_attribute not persisting)Rails Mailer 视图如何更新 ActiveRecord 记录? (update_attribute 不持久)
【发布时间】:2014-10-24 22:28:10
【问题描述】:

在我的 Foo 模型中,我有一个方法

def support_token_create_it_if_none_exists()
  self.my_support_token || self.create_a_support_token
end

当我需要支持令牌时,在我的所有 Web 代码中,我调用 foobar.support_token_create_it_if_none_exists 并返回一个令牌(如果需要,首先创建它)。

但是,如果在我的 Mailer 视图中我想做同样的事情,例如,显示支持令牌(如果它还不存在,则在传单上创建它)

...
Your token is #{@foobar.support_token_create_it_if_none_exists}
...

并在电子邮件中显示支持令牌,但如果令牌尚不存在,则不会将令牌保留在 Activerecord 中。

我假设发生了一些“邮件查看本地副本”的事情?如果是这样,有没有办法让 update_attribute 工作,即使在邮件视图中?

(简单的解决方法是确保我在调用 Mailer 时始终创建令牌,但我想了解发生了什么,所以我不会犯同样的错误。)

【问题讨论】:

    标签: ruby-on-rails actionmailer


    【解决方案1】:

    在调用邮件程序之前检查令牌并创建它怎么样?

    【讨论】:

    • 是的,这就是我最后提到的解决方法。但是,我对为什么它不能按原样工作非常感兴趣......如果有一些本地变量在邮件中的副本发生,我需要了解这一点。如果 update_attributes 永远不会在邮件程序中工作,或者有时在某些条件下工作,那么理解未来似乎很重要......
    猜你喜欢
    • 2012-12-08
    • 1970-01-01
    • 1970-01-01
    • 2022-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多