2011-03-14 45 views
0

我正在開發一個腳本來將舊的Rails 2應用程序數據庫轉換爲新的Rails 3應用程序。新的應用程序是對數據庫模式的重寫和簡化。您如何在Rails之外使用ActiveRecord3的關聯功能?

我創建了一個獨立於Rails的獨立ruby程序來完成繁重的工作,並利用適配器模式和Ruby模塊來操縱兩個數據庫連接並將數據從一個系統移動到另一個系統。

我在我的翻譯器模型中成功實現了ActiveRecord(使用include「active_record」),並且所有的查找和驗證都按預期工作。但是,這些關聯會導致method_missing調用。

我是否需要做一些特殊的事情才能讓協會在Rails環境之外工作?我希望得到一個簡單的答案,比如「你忘了需要這個密鑰文件」。

+1

你可以發佈一些代碼示例?你關於'include'active_record的一句話聽起來像是一個問題。要使AR正確工作,您的模型類需要從'ActiveRecord :: Base'繼承,例如:'類Something dunedain289 2011-03-14 22:19:58

回答

2

下面是一個小例子,使用ActiveRecord無軌:

require 'active_record' 

class Site < ActiveRecord::Base 
    has_many :users 
end 


class User < ActiveRecord::Base 
    belongs_to :site 
end 



ActiveRecord::Base.establish_connection(
    :adapter => 'mysql', 
    :database => 'test', 
    :user => 'root' 
) 

s = Site.first 

p s 
p s.users 
p s.users[0].site 

實在是沒有比這更! 這裏使用的寶石是積極記錄3,但完全相同的例子與積極記錄2一起使用。

PS:顯然你需要一個帶有網站和用戶表的測試數據庫來運行這個測試。

相關問題