簡體   English   中英

Rails 4.2.1無法建立連接

[英]Rails 4.2.1 fails to establish a connection

我正在使用ruby 2.2.2

Loading development environment (Rails 4.2.1)
irb(main):001:0> User
=> User (call 'User.connection' to establish a connection)
irb(main):002:0>

該應用程序似乎正常運行。 我確實插入了<%= console %>並且能夠在瀏覽器中進行調試。 我沒有.irb-rails文件(我認為那里可能有一些時髦的東西)。

那是昨天。 從那時起,我將rails升級到4.2.3並做了一個新應用

rails new blog
rails g scaffold blog title
rake db:migrate
rails c
irb(main)> Blog
Blog (call 'Blog.connection' to establish a connection)

有人可以告訴我怎么回事嗎?

輸出結果告訴您發生了什么。 在需要之前,Rails不會建立與數據庫的連接。

自從4.x的第一個發行版以來,此行為一直是Rails的一部分。 這是一個關於4.0.1的GitHub問題

如果執行它告訴您的操作,然后執行Blog.connection ,它將連接到數據庫,並且您將在輸出中看到列名。

如果這個過程很煩您,您可以使用官方API來查看列名: Blog.column_names

由於尚未建立連接,因此尚未建立連接。

改用User.find(1) ,看看連接是否成功

當僅調用模型嘗試獲取諸如“ Blog.all”之類的數據時,這沒有任何意義,這將建立連接並從Blog中獲取所有數據。

當您尚未遷移數據庫時,這是預期的行為。 只需執行rake db:migrate或檢查是否生成了模式文件,並通過詢問任何數據就至少建立一次連接。

您的環境中正在發生可疑的事情。 這是我的工作原理:

zepho-mac-pro:blog zepho$ rails c
Loading development environment (Rails 4.2.3)
2.2.2 :001 > Article
  => Article (call 'Article.connection' to establish a connection) 
2.2.2 :002 > Article.count
(0.1ms)  SELECT COUNT(*) FROM "articles"
=> 0 

當您進入rails控制台時。 如我的示例所示,它應該顯示Rails 4.2.3。 您的會話具有Rails 4.2.1。 確保使用正確的RVM gemset和Ruby版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM