Я слежу за этой Railscast для отправки писем с моих рельсов приложение.
Сначала я пытался настроить перехватчик почты, как в учебнике, но я отказался от этого, потому что у меня всегда был прекрасный can't convert nil into Hash (TypeError)
.
Теперь, когда я пропустил перехватчик, я хотел отправить письмо, но знаете что — мой старый друг вернулся:
can't convert nil into Hash (TypeError)
app/mailers/user_mailer.rb:20:in `registration'
Вот класс почтовой программы (строка № 20 — та, что вызывает mail):
class UserMailer < ActionMailer::Base
def registration( user )
@invited = user
subject = 'Welcome!'
if Rails.env.development?
to = '[email protected]'
subject = "to #{@invited.email}: #{subject}"
else
to = @invited.email
end
logger.info "Sending email to #{to} with subject #{subject}"
mail( :from => '[email protected]', :to => to, :subject => subject )
end
end
Журнал показывает:
invite entered for user [email protected]
Sending email to [email protected]
Sending email to [email protected] with subject to [email protected]: Welcome!
А вот и запрашиваемый файл представления (registration.text.erb):
Welcome!
blablah blah click the following link to activate blah blah <%= activate_user_path( @invited )%> blah blah.
blah blah this is actually german (but plaintext) encoded in utf-8.
Viel Vergnügen beim Verwenden des Systems!
спасибо за любую помощь
user
этоnil
- person fl00r   schedule 22.03.2011registration
из контроллера? - person fl00r   schedule 22.03.2011UserMailer.registration( self ).deliver
. - person DeX3   schedule 22.03.2011