Rails 4.2.1无法建立连接

时间:2015-06-26 20:39:47

标签: ruby-on-rails ruby ruby-on-rails-4

我正在使用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)

有人可以告诉我发生了什么事吗? 请

4 个答案:

答案 0 :(得分:1)

尚未建立连接,因为它不需要。

请尝试User.find(1),看看连接是否成功

答案 1 :(得分:1)

输出正在告诉你究竟发生了什么。在需要之前,Rails不会建立与数据库的连接。

自4.x的第一个版本以来,此行为一直是Rails的一部分。这是GitHub issue与4.0.1相关的讨论

如果你按照它告诉你的方式执行Blog.connection,它将连接到数据库,你会在输出中看到列名。

如果此过程令您烦恼,您可以使用官方API来查看列名:Blog.column_names

答案 2 :(得分:0)

当你打电话给你的模特试图获取一些数据时,这是没有意义的,例如&#34; Blog.all&#34;这使得连接和从博客中获取所有数据。

当您迁移数据库时,这是一种预期的行为。 只需执行rake db:migrate或生成检查模式文件,并通过询问任何数据至少进行一次连接。

答案 3 :(得分:-1)

你的环境中正在发生一些可疑的事情。这是我的会议:

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版本。