Meine App besteht in einem Formular, über das Sie ein Wort eingeben können, senden, und der Controller wird dann ein Word
Objekt mit dem Wort selbst erstellen und die Definition und ein Beispiel, das über JSON von einer API abgerufen wird.NoMethodError (undefinierte Methode `[] 'für nil: NilClass) wenn Objekt nicht 0 ist
Dies ist die widersprüchliche Zeile:
def create
@word = Word.new(word_params)
url = "http://api.pearson.com/v2/dictionaries/entries?headword=#{@word.word_name}"
Rails.logger.info url
uri = URI(url)
Rails.logger.info uri
response = Net::HTTP.get(uri)
Rails.logger.info response
result = ActiveSupport::JSON.decode(response)
Rails.logger.info result
@word.definition = result[0]["results"][0]["senses"][0]["definition"][0]
@word.example = result[0]["results"][0]["senses"][0]["translation"][0]["example"][0]["text"]
@word.save
redirect_to @word
end
Und hier kommt die Fehlerzeile:
@word.definition = result[0]["results"][0]["senses"][0]["definition"][0]
FATAL -- :NoMethodError (undefined method `[]' for nil:NilClass):
So ging ich davon aus, dass result
nil
war. Also habe ich mich ausgeloggt aber das Ergebnis ist genau wie erwartet as shown in this image
Was kann ich sonst noch versuchen?