将Rails模型连接到非rails数据库

时间:2010-05-15 05:25:43

标签: php mysql ruby-on-rails

我正在创建一个新的Web应用程序(Rails 3 beta),其中的部分内容将访问当前php应用程序正在使用的旧版mysql数据库中的数据。

我不希望修改遗留的数据库模式,我只是希望能够读取/写入它,以及使用activerecord为其拥有自己的数据库的rails应用程序。我正在使用mysql作为rails app,所以我安装了适配器。

最好的方法是怎样做的?例如,我希望联系人来自旧数据库。我应该创建一个联系人控制器,并手动调用sql来获取视图的变量吗? 或者我应该创建一个Contact模型,并定义与数据库中的字段匹配的属性,并且我能够像Contact.mail_address一样使用它来调用“SELECT mailaddr FROM contacts WHERE id = Contact.id”。

对不起,我在Rails之外从未做过很多文档记录以外的标准内容。我不确定最好的方法是什么。理想情况下,我希望将联系人尽可能本地呈现给我的rails应用程序,以便我可以将它们暴露给REST用于API访问。

非常感谢任何建议和代码示例

1 个答案:

答案 0 :(得分:1)

这实际上取决于您的遗留数据库的深奥程度。这大大影响了解决方案。如果您的遗留数据库与Rails约定非常相似,那么使用具有一些自定义的模型可能会被证明是最佳方法。但是我听说有人编写了一个脚本,不断地将遗留数据库中的数据重新导入到新数据库中 - 数据库的整个结构是错误的,这种方法是值得的。