Rails控制台无法连接到数据库

Wor*_*ica 27 macos ruby-on-rails

在最后几天,我将我的OS X更新为Maverics.今天,当我尝试创建这样的新项目时:

rails new abc
Run Code Online (Sandbox Code Playgroud)

有很多问题,但我安装xcode,现在它的工作.现在我打开rails控制台,如下所示:

rails console
Run Code Online (Sandbox Code Playgroud)

然后无论我写什么我只看到:

Loading development environment (Rails 4.0.1)
1.9.3p448 :001 > Link
=> Link(no database connection)
Run Code Online (Sandbox Code Playgroud)

怎么了?Mysql正在运行,数据库存在.当我做rake db:migrate时一切正常.

bar*_*own 60

控制台可能确实有一个数据库连接,但报告它没有.

要查看是否为真,请在控制台中进行查询.

Link.count
Run Code Online (Sandbox Code Playgroud)

这为我和一位同事解决了误报.


Jos*_*ber 28

过去,在加载控制台后立即引用ActiveRecord模型将返回其列信息.如果已明确强制通过等的方法来连接到数据库的Rails现在只返回此信息connection,first,all,count,等.

您可以通过将此添加到您的帐户来恢复以前的行为 config/application.rb

console do
  ActiveRecord::Base.connection
end
Run Code Online (Sandbox Code Playgroud)


Jua*_*tas 19

根据rails/rails的问题#12804.

该消息只是告诉您AR尚未连接到数据库,因此不知道列信息.我认为除非我们需要获取数据,否则不希望连接到数据库.

现在您可以使用Model.connection建立连接.