2009-07-11 75 views
1

我正在學習Ruby on Rails並做了聯繫人列表的事情,20分鐘的博客等,但我擔心在現有的非MySQL數據庫中使用RoR。我知道RoR可以與非MySQL進行通信;實際上,我正在使用jRuby on Rails,因此我可以使用JDBC。Ruby on Rails(jruby)對現有數據庫不太好嗎?

我的問題是RoR如何與現有數據庫一起工作。當我使用現有數據庫時,是否會失去使用RoR的所有好處?我不想總是生成更新,什麼不是。我必須小心,因爲它非常有趣。我只是想學習所有這些框架,「東西」可能是徒勞的,因爲我將要做的大部分工作並不是一個新的數據庫,RoR所做的所有「花哨」的東西都不會對我有意義。我絕對不能將數據更改爲另一個數據庫。我有許多不同的數據庫可以打到一個網頁上並重新啓動。

FWIW,我使用的是asp.net(非MVC),表適配器和ODBC(所有內聯網),但目前不在Microsoft服務器上。我在Mac OS X Server 10.5.7上,jruby,jdbc,ror。

我使用錯誤的框架來滿足我需要的東西嗎?我可以很容易地看到PHP像Classic ASP一樣工作,但是我還不能爲RoR想象這一點,並且我不想使用PHP,如果我不需要的話。 JSP和J2EE堆棧是一種可能性。

謝謝。

編輯:在這種情況下使用RoR有什麼好處嗎?我在一年前向Django人詢問了這個問題,並被告知可能對遺留數據不好。我不想讓它像一個方形孔中的圓形釘那樣工作,所以我可以說我正在使用RoR和紅寶石。我會用j2ee更好,冬眠嗎?

編輯: J2EE和MVC是我描述的更好的方法嗎?

回答

3

它有效,但你必須做更多的工作才能使事情發生。

通常的痛點,當你用ActiveRecord使用現有架構/ Rails的是:

  • 表名
  • 外鍵的名稱
  • 主鍵(尤其是複合主鍵)

ActiveRecord對你如何設置事物做了大量的假設。在很多情況下都有重寫,但並非全部。除非你在表格結構中做奇怪的事情,否則你通常可以在那裏找到大部分路徑。

+1

我還補充說,如果有什麼東西你根本無法解決,你可以隨意ping通Rails團隊的成員(是的,我正在公開邀請),我們可以看到關於擴展或核心更改,這可以使ActiveRecord與舊數據庫一起使用。還有一個名爲DataMapper的替代ORM,它將與下一版本的Rails 100%兼容,並且對遺留數據庫有更好的顯式支持。 – 2009-07-11 15:34:04