hol*_*den 32 ruby-on-rails mailer devise ruby-on-rails-3
当我说布局时我并不仅仅意味着视图,我生成那些.在我自己的邮件上,我正在使用默认布局.我在SomeMailer.rb文件中定义
#some_mailer.rb
class SomeMailer < ActionMailer::Base
layout 'sometemplate'
Run Code Online (Sandbox Code Playgroud)
我是否可以通过某种方式为Devise Mailer等人做到这一点?
hol*_*den 55
找到答案坐在Devise Github wiki中,
阅读有帮助.;-)
config.to_prepare do
Devise::Mailer.layout "simple" # simple.haml or simple.erb
Devise::Mailer.helper :mailer
end
Run Code Online (Sandbox Code Playgroud)
以下是Wiki页面的参考:如何:创建自定义布局
Mat*_*ith 19
# Devise::Mailer inherits from ActionMailer::Base other mail will work fine.
## app/mailers/deviser_mailer.rb
class DeviseMailer < Devise::Mailer
layout 'email'
default from: I18n.t("mailer.default.from")
end
## then in config/initializer/devise.rb
# Configure the class responsible to send e-mails.
config.mailer = "DeviseMailer"
Run Code Online (Sandbox Code Playgroud)
确保在更改初始化程序时重新启动rails服务器.
Ale*_*xis 15
还有一个parent_mailer在选项devise.rb,让我们说你是色器件外发送电子邮件,默认情况下此选项设置为的ActionMailer :: Base的,但如果你有一个ApplicationMailer已经被继承的ActionMailer :: Base的,你可以将parent_mailer更改为this并获得开箱即用的所有布局和配置.
在任何情况下,如果您不想在设计邮件程序控制器中更改任何内容,那么使用它来保持应用程序中的布局流量更加清晰.
# devise.rb
config.parent_mailer = 'ApplicationMailer'
Run Code Online (Sandbox Code Playgroud)
# application_mailer.rb
class ApplicationMailer < ActionMailer::Base
# if you need to add a helper module for example
add_template_helper(EmailHelper)
layout 'mailer'
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14326 次 |
| 最近记录: |