2016-08-03 14 views
0

私のアプリは単語を入力して送信し、コントローラが単語自体を含むWordオブジェクトを作成するフォームで構成されています、APIからJSONを介して取得された定義とサンプルです。NoMethodError(nilの場合は未定義メソッド[[] ':NilClass)オブジェクトがnilでない場合

これは、競合する行です:

@word.definition = result[0]["results"][0]["senses"][0]["definition"][0] 

FATAL -- :NoMethodError (undefined method `[]' for nil:NilClass): 

だから私はresultnilだったと仮定:

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 

そしてここでは、エラー行が来ます。だから私はそれをログアウトしましたが、結果はまさに予期した通りですas shown in this image

他に何を試すことができますか?

答えて

0

使用結果代わり結果の[ "結果"] [0] [ "結果"]

@word.definition = result["results"][0]["senses"][0]["definition"][0] 
関連する問題