NoMethodError (método indefinido `[] 'para nil: NilClass)

Tengo una instancia muy extraña de este error:

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'

Lo que es extraño es que la línea 150, donde dice que el error está, está dentro de un bucle y se ejecuta perfectamente 11 veces antes de que decida cometer un error. No tengo ninguna idea de por qué funcionaría bien, pero falla una línea antes de lo que sería efectivo el bucle donde la instrucción if devuelve verdadero.

Este es el código:

  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

Y esta es la salida antes de que reciba el error:

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

Gracias de antemano por cualquier ayuda.

Respuestas a la pregunta(2)

Su respuesta a la pregunta