Для Ruby On Rails 4, я должен был сделать 2 вещи:
(1) Как Duke уже сказал, если помощник вы хотите добавить это UsersHelper
, например, то добавить
helper :users
к производному классу ActionMailer
(например, app/mailers/user_mailer.rb
)
(2) После этого я получил новую ошибку:
ActionView::Template::Error (Missing host to link to! Please provide the :host
parameter, set default_url_options[:host], or set :only_path to true)
Чтобы это исправить, добавьте строку
config.action_mailer.default_url_options = { :host => 'localhost' }
каждому из config/environments/*.rb
файлов. Для config/environments/production.rb
замените localhost
на более подходящий хост для генерируемых вспомогательными URL-адресами.
Вопрос: Для № 2, почему почтовый ящик нуждается в этой информации, а обычные виды нет?
A: Поскольку обычные представления не обязательно знать host
, так как все сгенерированные ссылки обслуживаются с узла, к которому они обращаются. Ссылки, отображаемые в электронных письмах, не подаются с одного и того же хоста (если вы не связываетесь с hotmail.com
или gmail.com
и т. Д.)
аналогичный - http://amolnpujari.wordpress.com/2013/12/27/highlight-changes-being-made-on-activerecord-object-inside-mail/ –