Pour Ruby on Rails 4, je devais faire 2 choses:
(1) Comme Duke déjà dit, si l'aide que vous souhaitez ajouter est UsersHelper
par exemple, puis ajouter
helper :users
à la classe dérivée ActionMailer
(par ex. app/mailers/user_mailer.rb
)
(2) Après cela, je me suis une nouvelle erreur:
ActionView::Template::Error (Missing host to link to! Please provide the :host
parameter, set default_url_options[:host], or set :only_path to true)
Pour résoudre ce problème, ajoutez la ligne
config.action_mailer.default_url_options = { :host => 'localhost' }
à chacun des config/environments/*.rb
fichiers. Pour config/environments/production.rb
, remplacez localhost
par un hôte plus approprié pour les URL générées par l'assistant de production. Q: Pour le n ° 2, pourquoi la vue de courrier a-t-elle besoin de cette information, et les vues normales ne le font pas? R: Parce que les vues régulières n'ont pas besoin de connaître le host
, puisque tous les liens générés sont servis à partir de l'hôte auquel ils sont liés. Les liens qui s'affichent dans les e-mails ne sont pas diffusés depuis le même hôte (à moins que vous ne liez hotmail.com
ou gmail.com
, etc.)
similaire - http://amolnpujari.wordpress.com/2013/12/27/highlight-changes-being-made-on-activerecord-object-inside-mail/ –