2012-02-24 47 views
4

是否有一种简单的'命令行/控制台'检查Rails应用程序是否正确连接到MySQL?如何检查Rails 3.2是否可以连接到MySQL?

不幸的是,我不能得到一个Rails控制台来。它抱怨:

/home/nexargi/www/gi/vendor/ruby/1.9.1/gems/activerecord-3.2.1/lib 
    /active_record/dynamic_matchers.rb:50:in `method_missing': undefined 
local variable or method `abddadhocbkgid' for #<Class:0x000000036427f8> (NameError) 
    from /home/nexargi/www/gi/app/models/adhoc_bkg_diners_diet.rb:5:in 
`<class:AdhocBkgDinersDiet>'. 

的“abddadhocbkid”是第一台的第一属性,因此,我认为它不负责管理连接到MySQL数据库。我需要找到一种方法来检查Rails是否可以连接到mysql数据库而无需登录到rails控制台。

这里是我的模型代码:

class AdhocBkgDinersDiet < ActiveRecord::Base 
    validates_presence_of :abddadhocbkgid, :abddmealdietid, :abddadultnos, :abddchildnos 
    validates_numericality_of :abddadultnos, :abddchildnos, greater_than_or_equal_to: 0 

    belongs_to :adhoc_bkg, foreign_key:abddadhocbkgid 
belongs_to :meal_diet, foreign_key: :abddmealdietid 
end 
+0

你能显示有问题的型号代码吗?根据错误消息,与代码连接相比,代码更可能出现问题。另外,你是否运行这个表的迁移? – PinnyM 2012-02-24 19:16:21

+0

@PinnyM我找到了错误。您可以在第一个belongs_to行中看到它。它应该是:belongs_to:adhoc_bkg,foreign_key :: abddadhocbkgid。令人惊讶的是,它并没有在我的开发系统上失败,但是当我将它转移到生产环境中时,它确实如此。现在解决它的任何方式,并感谢您的帮助。 – nexar 2012-02-26 09:41:32

回答

6

您可以尝试直接连接使用控制台:

ActiveRecord::Base.establish_connection(
    Rails.configuration.database_configuration[Rails.env] 
) 

或者,如果你有一个模型,你可以尝试寻找一个:

SomeModel.first 
+0

请看我编辑的帖子。谢谢 – nexar 2012-02-24 19:14:04

13

如果您只需要检查您的连接在建立后是否处于活动状态,则有ActiveRecord::Base.connected?方法。

+0

请看我的编辑帖子 – nexar 2012-02-24 19:13:49

+3

连接何时激活?当我在控制台中运行这个具有PostgreSQL数据库的Rails应用程序并运行'rails server'时,这仍然返回false。 – Dennis 2014-04-17 14:12:12