我想从邮件程序视图中访问一个方法,该方法根据发送电子邮件的用户返回一个布尔值。
例如,假设用户的属性is_subscriber
可以是true或false。
该方法将包含以下内容:
def show_banner?
FeatureManager.is_feature_available?(:subscription_banners) && !user.is_subscriber
end
我想从邮件程序视图中访问此方法。
问题是,我的应用程序中有很多邮件程序(UserMailer,SubscriptionMailer,FollowUpMailer),并且依赖于每个邮件程序的@user实例变量似乎有点危险。
我是否可以通过“示例”字段访问“to”字段中的电子邮件地址,以便我可以通过他的电子邮件地址找到用户:
mail :to => @user.email, :subject => I18n.t('welcome_mail.subject')
这样做是个好主意还是有更通用的方法来制作这样的辅助方法?
答案 0 :(得分:9)
您可以在actionview中使用 @_ message ,这样您就可以访问消息对象,您可以从中访问“to”,“from”等字段。
我有一个案例,我需要在所有邮件上取消订阅按钮,所以把它放在我的布局中,用于邮件。我使用上面的解决方案找到邮件接收者并实现取消订阅各自的邮件。