私のsample_data.rakeファイルに "Diner.create!(...)
"というコマンドがあり、 "uninitialized constant Diner
"エラーが発生します。しかし、Railsコンソールで同じ "Diner.create!(...)"コマンドを実行すると、成功します。モデルをsample_data.rakeファイルに「必要」すると、バックトレースに "active_record/connection_adapters/abstract/connection_pool.rb:318:in retrieve_connection'
"と表示されているエラー "ActiveRecord::ConnectionNotEstablished
"が表示されます。レイクのモデル参照での初期化されない定数エラー
class Diner < ActiveRecord::Base
has_many :redemptions
has_many :surveys, :through => :redemptions
end
そして、問題の原因sample_data.rakeファイル内のコードは次のとおりです:ここに私のdiner.rbファイルがある
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
は、上記のコードを削除したファイルが正常に処理させます。そして、私が前に述べたように、上記のコードはレールコンソールで正しく動作します。
これは私がタスクで参照した最初のモデルではありません。実際には、このタスクに先立ってレコードを受け取った4つのモデルがありました。この新しいテーブルを追加する前に、このタスクは数か月にわたって正常に完了しました。私が新しいコードを削除すると、タスクはもう一度動作します。そして、私はファイルの先頭の近くに「タスク:populate =>:environment do'」を持っています。 あなたが私にチェックしてもらえると思うことがありますか? –
その '99x'ループの前にレコードを作成していますか? – krichard
他の3つのモデル/テーブルでは、はい。しかし、それはそのモデル/テーブルの最初のものです。 –