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):
だから私はresult
がnil
だったと仮定:
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
他に何を試すことができますか?