私のレールアプリケーションが正常に動作しています。私が実行すると、rake db:migrate
が正常に動作しています。 これで、レールコンソールを起動しようとすると問題が発生します。レールのコンソールにデータベース接続がありません
2.0.0p247 :003 > User
=> User(no database connection)
私のレールアプリケーションが正常に動作しています。私が実行すると、rake db:migrate
が正常に動作しています。 これで、レールコンソールを起動しようとすると問題が発生します。レールのコンソールにデータベース接続がありません
2.0.0p247 :003 > User
=> User(no database connection)
シンプルなソリューション: コンソールは、おそらくデータベース接続を持っていませんが、そうでないことを報告しています。
これが正しいかどうかを確認するには、コンソールでクエリを実行します。
User.count
これは、私と同僚の誤認警告を修正しました。
または
接続を確立するためにModel.connection
を使用してください。
これは問題ではありません。起こっていることは、接続が必要になるまでインスタンス化されないことです。
それは私が考えたものです。ありがとう。 –
これは、ActiveRecordが遅延接続4.0
を開始することによるものです。ただそれについて心配しないでください。
最初に設定したら、期待される出力が見え始めます。このお試しください:コンソールがロードされた直後に、その列の情報を表示するのActiveRecordモデルの動作を復元するには
2.1.4 :001 > User
# => User (call 'User.connection' to establish a connection)
2.1.4 :001 > User.count
# => SELECT COUNT(*) FROM "users" ...
2.1.4 :001 > User
# => User(id: integer, email: string, encrypted_password: string, ...)
どうやって接続を遅く作成しないのですか?それにはどんな利点がありますか? – Trip
@Trip私はアプリケーション内でメモリを節約していると仮定しています。なぜあなたはメモリに使用していないものをロードし、時間が来たらそれに対処します。 – icantbecool
私の時間が節約されました。ありがとうございました – Agnes
を、ここでは1つの回避策は次のとおりです。
# config/application.rb
console do
ActiveRecord::Base.connection
end
これは、プロセスのnice oneを自動化します。 – Magnum
問題が解決されている場合は、あなた自身の答えを受け入れる必要があります。 –
確かに、私は2日間でそれを受け入れることができます – ben
解決のおかげで – akbarbin