在 Rails 3.1 中为 Mailer 和 View 提供自定义助手
Posted
技术标签:
【中文标题】在 Rails 3.1 中为 Mailer 和 View 提供自定义助手【英文标题】:Make a custom helper available to both Mailer and View in Rails 3.1 【发布时间】:2011-10-11 07:51:04 【问题描述】:这是在 Rails 3.1 中为 Mailer 和视图提供帮助程序的最佳方式吗?
class EventMailer < ActionMailer::Base
include MailerHelper
helper :mailer
我试过了
helper :mailer
单独使用,但这不允许我使用 EventMailer 类中的帮助器。
我试过了
add_template_helper(MailerHelper)
但遇到了同样的问题。
【问题讨论】:
【参考方案1】:rails 助手应该是 view 助手。
你会注意到下面的代码:
class MyController < ApplicationController
helper :my
end
将使MyHelper
中的方法可用于视图,但不可用于您的控制器操作。 include MyHelper
将使辅助方法在控制器中可用。
总结:
helper :my
并且您可以在视图中使用助手
include MyHelper
你可以在你的控制器中使用助手
我解释了一点,但你已经回答了你的问题:
class EventMailer < ActionMailer::Base
include MailerHelper
helper :mailer
# rest of the code goes here ...
end
会做你想做的,并允许你在你的邮件和视图中使用你的助手。
希望这会有所帮助。
【讨论】:
以上是关于在 Rails 3.1 中为 Mailer 和 View 提供自定义助手的主要内容,如果未能解决你的问题,请参考以下文章
Rails Mailer - 无法从 Mailer 视图访问实例变量
用于 webmail 的 rails 4 action mailer 设置 (SMTP)
Rails Mailer “Net::OpenTimeout: execution expired” 仅在生产服务器上出现异常