我正在使用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 new blog
rails g scaffold blog title
rake db:migrate
rails c
irb(main)> Blog
Blog (call 'Blog.connection' to establish a connection)
有人可以告诉我发生了什么事吗? 请
答案 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版本。