在我的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
在其他三个模型/表格中,是的。但这是该模型/表格中的第一个。 –