このタスクは、テーブルにデータを入力するために作成しました。「フライト」テーブルはかなり大きいです(23000投稿)。しかし、2回目にループを移動すると、この奇妙なエラーが発生します。
コードは次のとおりです。
desc "Compute the AirlineTerminal Table"
task :populate_airlineterminals => :environment do
#first delete content
AirlineTerminal.destroy_all
allFlights = Flight.all
#AFTER ONE ITERATION THE ERROR HAPPENS
allFlights.each do |f|
atTerminal = AirlineTerminal.where(:airline_id => f.airline_id, :airport_id => f.airport_id, :terminal => f.terminal).first
if atTerminal.nil?
atTerminal = AirlineTerminal.new
atTerminal.airport_id = f.airport_id
atTerminal.airline_id = f.airline_id
atTerminal.terminal = f.terminal
end
atTerminal.count++
atTerminal.save #so far so good
end
end
これは、スクリプトを実行したときに発生することです。ループを1回通過すると、スクリプトがクラッシュします。
$ rake populate_airlineterminals
rake aborted!
undefined method `+@' for true:TrueClass