繁体   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