在控制器中,我有:
mailer = MyReminderMailer.new
Run Code Online (Sandbox Code Playgroud)
邮件看起来像这样:
class MyReminderMailer < ActionMailer::Base
def change_email
mail(
from: default_from,
to: default_to,
subject: "..."
)
end
def default_from
return '...'
end
def default_to
return '...'
end
end
Run Code Online (Sandbox Code Playgroud)
但得到错误:私有方法`new'调用MyReminderMailer:Class
小智 5
Ruby 不允许以正常方式调用私有方法。您可以使用发送方法调用它
SomeClass.send :method_name
#in your case
MyReminderMailer.send :new
Run Code Online (Sandbox Code Playgroud)
而且您不需要 ActionMailer 对象。要发送邮件,只需像类方法一样使用该方法。
MyReminderMailer.change_email.deliver
Run Code Online (Sandbox Code Playgroud)
希望这可以帮到你。
| 归档时间: |
|
| 查看次数: |
3507 次 |
| 最近记录: |