Nic*_*nto 8 ruby-on-rails actionmailer devise rails-i18n devise-invitable
默认情况下,邀请邮件的主题是
mailer:
invitation_instructions:
subject: 'Invitation instructions'
Run Code Online (Sandbox Code Playgroud)
我想改成它
subject: '%{invited_by} has invited you!'
Run Code Online (Sandbox Code Playgroud)
但是这需要让i8n的translate方法可以访问invite_by变量.
如何在不更改默认行为的情况下访问/声明此变量?
Ale*_*xis 29
设计默认邮件程序对您不起作用,但设置自定义邮件程序并定义您自己的subject_for帮助程序非常容易:
# in config/initializers/devise.rb:
...
config.mailer = "CustomDeviseMailer"
...
Run Code Online (Sandbox Code Playgroud)
# in app/mailers/custom_devise_mailer.rb:
class CustomDeviseMailer < Devise::Mailer
protected
def subject_for(key)
return super unless key.to_s == 'invitation_instructions'
I18n.t('devise.mailer.invitation_instructions.subject',
:invited_by => resource.invited_by.try(:full_name) || 'Someone')
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2182 次 |
| 最近记录: |