2014-01-11 15 views

答えて

27

シンプルなソリューション: コンソールは、おそらくデータベース接続を持っていませんが、そうでないことを報告しています。

これが正しいかどうかを確認するには、コンソールでクエリを実行します。

User.count 

これは、私と同僚の誤認警告を修正しました。

または

接続を確立するためにModel.connectionを使用してください。

+0

問題が解決されている場合は、あなた自身の答えを受け入れる必要があります。 –

+0

確かに、私は2日間でそれを受け入れることができます – ben

+0

解決のおかげで – akbarbin

3

これは問題ではありません。起こっていることは、接続が必要になるまでインスタンス化されないことです。

+0

それは私が考えたものです。ありがとう。 –

71

これは、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, ...) 
+0

どうやって接続を遅く作成しないのですか?それにはどんな利点がありますか? – Trip

+0

@Trip私はアプリケーション内でメモリを節約していると仮定しています。なぜあなたはメモリに使用していないものをロードし、時間が来たらそれに対処します。 – icantbecool

+0

私の時間が節約されました。ありがとうございました – Agnes

5

を、ここでは1つの回避策は次のとおりです。

# config/application.rb 
console do 
    ActiveRecord::Base.connection 
end 
+0

これは、プロセスのnice oneを自動化します。 – Magnum

関連する問題