2017-01-03 2 views
1

Ich kann nicht scheinen, um herauszufinden, warum ich die Störung erhalte:Warum ist dieses Objekt nicht definiert? Ruby, Rails, Gmail Fehler

2017-01-03T02:57:35.239505+00:00 app[web.1]: I, [2017-01-03T02:57:35.239437 #4] INFO -- : [89b504ee-5835-4bfa-a3ff-91a3a84549f6] Parameters: {"id"=>"3"} 
2017-01-03T02:57:35.243975+00:00 app[web.1]: D, [2017-01-03T02:57:35.243890 #4] DEBUG -- : [89b504ee-5835-4bfa-a3ff-91a3a84549f6] User Load (1.5ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 ORDER BY "users"."id" ASC LIMIT $2 [["id", 22], ["LIMIT", 1]] 
2017-01-03T02:57:35.468562+00:00 app[web.1]: true 
2017-01-03T02:57:35.476648+00:00 app[web.1]: D, [2017-01-03T02:57:35.476563 #4] DEBUG -- : [89b504ee-5835-4bfa-a3ff-91a3a84549f6] Blueprint Load (2.7ms) SELECT "blueprints".* FROM "blueprints" WHERE "blueprints"."id" = $1 LIMIT $2 [["id", 3], ["LIMIT", 1]] 
2017-01-03T02:57:35.477654+00:00 app[web.1]: I, [2017-01-03T02:57:35.477582 #4] INFO -- : [89b504ee-5835-4bfa-a3ff-91a3a84549f6] Completed 500 Internal Server Error in 238ms (ActiveRecord: 5.5ms) 
2017-01-03T02:57:35.478257+00:00 app[web.1]: F, [2017-01-03T02:57:35.478177 #4] FATAL -- : [89b504ee-5835-4bfa-a3ff-91a3a84549f6] 
2017-01-03T02:57:35.478313+00:00 app[web.1]: F, [2017-01-03T02:57:35.478256 #4] FATAL -- : [89b504ee-5835-4bfa-a3ff-91a3a84549f6] Gmail::Client::DeliveryError (Couldn't deliver email: undefined method `subject' for nil:NilClass): 

Aus irgendeinem Grund das Objekt @current_blueprint nicht innerhalb des gmail.deliver zu funktionieren scheint Block. Fehle ich etwas Offensichtliches?

Schätzen Sie jede Hilfe. Vielen Dank!

@current_blueprint = Blueprint.find(params[:id]) 
mail_status = gmail.deliver! do 
    to "[email protected]" 
    subject @current_blueprint.subject 
    html_part do 
    content_type 'text/html; charset=UTF-8' 
    body @current_blueprint.body 
    end 
end 
puts mail_status 

Antwort

2

Versuchen nur current_blueprint ohne @ Zeichen.

Irgendwann führt eine Bibliothek eine do end mit einer anderen self aus und kann daher nicht auf Instanzvariablen zugreifen, aber sie sollte auf lokale Variablen zugreifen können, die sich im Geltungsbereich befinden.

Nur Raten, lassen Sie mich wissen, ob es funktioniert.

+0

Das war es - ich wusste, es musste etwas Einfaches sein, weil es in der Konsole korrekt ausgeführt wurde - vielen Dank! – Kevin

+1

Wenn Sie neugierig sind, warum oder wie das passiert, [http://yehudakatz.com/2009/11/15/metaprogramming-in-ruby-its-all-about-the- self /) kann die Details eintragen. – coreyward

+0

@kevi froh zu hören! Am besten akzeptieren Sie die Antwort mit dem Häkchen dann. – akuhn

Verwandte Themen