[英]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.