2011-09-26 36 views
0
project1: contains app\models\foo.rb (ActiveRecord facade for foo object) 
project2: I would like to fetch all foo's in project2. 

如何在此處引用project1中的foo,以便避免代碼複製對應於從同一表中獲取信息?如何引用在不同項目中定義的紅寶石類

回答

3

如果你想共享數據,然後ActiveResource應該做的伎倆。我建議你看the Railscast讓你開始。

如果只是你想分享的班級代碼,那麼我會說只是把它放在寶石中。

+0

我是一個新手,有沒有一個樣本寶石,我可以看看實現代碼共享? – Jason

+1

你可以創建自己的寶石,在Rails 3.1中引擎真的很容易。只需進入一個新目錄並運行'rails plugin new my_gem_name --full'。編輯你的.gemspec文件,然後像普通的Rails應用程序一樣開發它。運行'gem build'創建一個'.gem'文件,你可以安裝幷包含在你的Gemfile中,或者使用'gem'my_gem_name',:path =>/path/to/my_engine'。 – aNoble

0

我認爲有2種方法來做到這一點:

  1. 使用2個數據庫在一個Rails應用程序。在stackoverflow上有一些相關的問題。以身作則How do i work with two different databases in rails with active records?
  2. 使用Rails ActiveResource來做到這一點。這是一種輕量級的方法,通過REST接口使用外部資源。但是,您駕駛2個應用程序並在它們之間進行呼叫。根據操作系統的不同,這可能會比其他方法花費更多的運行時間。