Para rubí en los carriles 4, que tenía que hacer 2 cosas:
(1) Como Duke ya se ha dicho, si el ayudante que desea agregar es UsersHelper
por ejemplo, entonces añadir
helper :users
a la clase derivada ActionMailer
(por ejemplo, app/mailers/user_mailer.rb
)
(2) Después de eso, tiene un nuevo error:
ActionView::Template::Error (Missing host to link to! Please provide the :host
parameter, set default_url_options[:host], or set :only_path to true)
Para solucionar este problema, agregue la línea
config.action_mailer.default_url_options = { :host => 'localhost' }
a cada uno de los archivos config/environments/*.rb
. Para config/environments/production.rb
, reemplace localhost
con un host más apropiado para las URL generadas por ayuda de producción.
Q: Para # 2, ¿por qué la vista de correo necesita esta información, y las vistas normales no lo hacen?
A: Debido a que las vistas regulares no necesitan conocer el host
, ya que todos los enlaces generados se sirven desde el host al que se enlazan. Los enlaces que aparecen en los correos electrónicos no se sirven desde el mismo host (a menos que esté enlazando a hotmail.com
o gmail.com
, etc.)
similar - http://amolnpujari.wordpress.com/2013/12/27/highlight-changes-being-made-on-activerecord-object-inside-mail/ –