如何部分检测是否由邮件程序呈现?

时间:2011-04-05 17:48:28

标签: ruby-on-rails ruby-on-rails-3 actionmailer

我有一些部分在几个不同的视图和邮件模板之间共享。如果可能,此部分应尝试使用用户的会话来存储一些状态信息。

确定会话是否存在似乎有点问题。在部分内部,调用定义的?(会话)似乎总是在邮件呈现期间产生真(这是一个错误吗?),但试图以任何方式访问“会话”会产生“未定义的方法”异常。

截至目前,我正在让我的邮件程序使用@for_mailer实例变量来表示此部分以不同方式呈现,但这似乎并不优雅。部分是否有一些简单的方法可以判断它是否由邮件程序呈现,而不是在Web请求的上下文中呈现?

1 个答案:

答案 0 :(得分:1)

也会为此创建两个部分内容,但这里也是一个替代解决方案。

假设它来自不同的控制器和动作,你可以查看params [:controller]和params [:action]。

如果你最终这样做了几次,你可能会得到更多的代码,而不仅仅是重写部分代码。您希望两个演示文稿之间有什么不同?