在我的sample_data.rake文件中,我有導致「uninitialized constant Diner
」錯誤的命令「Diner.create!(...)
」。但是,如果我在Rails控制檯中執行相同的「Diner.create!(...)」命令,則它是成功的。如果我在sample_data.rake文件中「需要」模型,則會出現錯誤「ActiveRecord::ConnectionNotEstablished
」,回溯顯示「active_record/connection_adapters/abstract/connection_pool.rb:318:in retrieve_connection'
」。這裏是我的diner.rb文件:Rake中的模型參考未初始化的常量錯誤
class Diner < ActiveRecord::Base
has_many :redemptions
has_many :surveys, :through => :redemptions
end
而引起該問題是sample_data.rake文件中的代碼:
99.times do |n|
gender = rand(1) == 0 ? "male" : "female"
birthdate = Date.ordinal(DateTime.now.year - 13 - rand(62), rand(364)+1)
Diner.create!(:gender => gender, :birthdate => birthdate)
end
卸下上面的代碼導致成功處理的文件。而且,正如我之前所說的,上面的代碼在rails控制檯中正常工作。
我忽略提及這不是我在任務中引用的第一個模型。實際上,有四種不同的模型在此任務之前收到記錄,並且在今天添加此新表之前,任務已成功完成數月。如果我刪除了新的代碼,這個任務再次運行。我在文件的頂部附近有「任務:填充=>:環境」。 還有什麼你可以想到的我檢查? –
您是否在99.times'循環之前創建記錄? – krichard
在其他三個模型/表格中,是的。但這是該模型/表格中的第一個。 –