Привет, у меня есть что-то вроде следующего:
class TrialRequest
attr_accessor :trial_email
def initialize(email)
@trial_email = email
puts "Trial_email: #{trial_email}"
end
def create
@email = ::Gmail.connect!(gmail_name, gmail_password) do |gmail|
email = gmail.compose do
to 'trial@domain.com'
from trial_email
subject trial_email
text_part do
content_type 'text/html; charset=UTF-8'
body 'Sign me up.'
end
end
#binding.pry
gmail.deliver!(email)
end
end
end
Проблема в том, что внутри блока композита trial_email
не определено:
NameError: undefined local variable or method `trial_email' for #<Mail::Message:0x0000000431b830>
Это проблема Ruby 1.9или проблема с гемом gmail?
Как мне сделать так, чтобы этот метод был "видимым" / в пределах блока создания?
Обновление: Это проблема/ особенность gmail gem - блоки ruby 1.9 изменились, но не так сильно!В дополнение к принятому ответу, другой обходной путь должен передать данные в качестве параметра метода:
def create(trial_email)
...
end