NoMethodError (undefinierte Methode `[] 'für nil: NilClass)

Ich habe eine sehr seltsame Instanz dieses Fehlers:

NoMethodError (undefined method `[]' for nil:NilClass):
app/controllers/main_controller.rb:150:in `block in find_data_label'
app/controllers/main_controller.rb:149:in `each'
app/controllers/main_controller.rb:149:in `find_data_label'
app/controllers/main_controller.rb:125:in `data_string'
app/controllers/main_controller.rb:35:in `catch'

Was seltsam ist, dass die Zeile 150, in der der Fehler angegeben ist, sich in einer Schleife befindet und 11 Mal perfekt ausgeführt wird, bevor sie sich dazu entscheidet, einen Fehler zu beheben. Ich habe keine Ahnung, warum es gut funktionieren würde, aber eine Zeile vor der Schleife, in der die if-Anweisung true zurückgibt, scheitere ich.

Dies ist der Code:

  def find_data_label(label)
    @fields.each do |f|
      puts "f[:field_data]['Title'] = #{f[:field_data]['Title']}" # <--- line 150
      if f[:field_data]['Title'] == label
        return f
      end
    end
  end

Und dies ist die Ausgabe, bevor ich den Fehler erhalte:

f[:field_data]['Title'] = Name
f[:field_data]['Title'] = Name
f[:field_data]['Title'] = Mobile number
f[:field_data]['Title'] = Email
f[:field_data]['Title'] = Date of birth
f[:field_data]['Title'] = Gender
f[:field_data]['Title'] = Street name
f[:field_data]['Title'] = Street number
f[:field_data]['Title'] = My local Puckles store is in
f[:field_data]['Title'] = Suburb
f[:field_data]['Title'] = Postcode
Completed 500 Internal Server Error in 2047ms

Vielen Dank im Voraus für jede Hilfe.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage