2012-02-24 45 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