我寫了這個任務來填充表。 「飛行」表非常大(23000個帖子)。但是當我們第二次穿過循環時,我得到了這個奇怪的錯誤。未定義的方法`+ @'爲true:TrueClass
下面的代碼:
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
這是當我運行該腳本會發生什麼,通過它崩潰一週之旅後。
$ rake populate_airlineterminals
rake aborted!
undefined method `[email protected]' for true:TrueClass
運行帶有'--trace'選項,以獲得完整的堆棧跟蹤你的rake任務。至少你會知道你的代碼的哪一行導致了這個問題。 –
我給列命名。不是很聰明,因爲它與.count運算符相撞。要重命名,看看會發生什麼。 – TOMvonMOM
'renamed_column:airline_terminals,:count,:departure_count'。沒有不同。它是在fsave第一次崩潰之後循環的。 – TOMvonMOM