2016-05-17 69 views
0

我試圖將外部MySQL數據庫連接到Rails 4並從那裏讀取數據。所以我做了什麼至今:Rails 4 - 從外部提取數據MySQL

  • 創建lib/primo_db.rb
  • 創建模型models/accountstatus.rb

primo_db.rb

require 'active_record' 
require 'mysql' 

class PrimoDatabase < ActiveRecord::Base 
    self.abstract_class = true 
    establish_connection(
    :adapter => 'mysql', 
    :database => '...', 
    :host  => '...', 
    :username => '...', 
    :password => '...' 
) 
end 

account.rb

require 'primo_database' 

    class Account < PrimoDatabase 
     self.table_name = 'account' 
     def self.getdata 

     end 
    end 

我的問題是:

  • 如何測試,因爲當我在鐵軌控制檯運行Accountstatus.getdata我得到這個錯誤NameError: uninitialized constant PrimoDatabase

  • 如果我跑ActiveRecod::Base.connection?它們之間的連接控制檯它回來了false

我知道我做錯了什麼,所以我會很感激任何幫助。

編輯 - 一看便知明白我的DID低於

+0

嘗試重命名你的'primo_db.rb'文件'primo_database.rb',使文件和類上定義的名稱具有相同的名稱 – Bustikiller

+0

您是否需要'lib/primo_db'? – spickermann

+0

@Bustikiller當我重命名文件夾,它並沒有幫助,同樣的錯誤.. @spickermann我嘗試,我沒有收到錯誤,當我輸入'Accountstatus.getdata' =>'nil'但是當我嘗試找到一些仍然存在的錯誤:不存在:SELECT'accountstatuses'。* FROM'accountstatuses' – liborza

回答

0

好吧,我知道我做了一個錯誤。

  • 文件必須被命名爲喜歡在文件中的類,所以對我來說:account.rb和類Account < PrimoDatabase
  • 那麼就應該是類require '*.rb'之前,從lib
  • 然後我不得不添加self.table_name = 'account'指定表
  • ,要求把連接Account.connection

那麼接下來即時通訊能夠連接到DB並從那裏提取數據。 希望它有助於某人。

編輯我的問題的正確答案