2009-07-11 91 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