【问题标题】:Connect Rails model to non-rails database将 Rails 模型连接到非 Rails 数据库
【发布时间】:2010-05-15 05:25:42
【问题描述】:

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

我不想修改旧的数据库架构,我只想能够读/写它,以及拥有自己的数据库的 Rails 应用程序使用 activerecord 来获取更新的东西。我将 mysql 用于 rails 应用程序,所以我安装了适配器。

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

抱歉,除了记录良好的标准内容之外,我从未在 Rails 中做过很多事情。我不确定最好的方法是什么。理想情况下,我希望尽可能将联系人呈现给我的 Rails 应用程序,以便我可以以 REST 方式公开它们以供 API 访问。

任何建议和代码示例将不胜感激

【问题讨论】:

    标签: php mysql ruby-on-rails


    【解决方案1】:

    这真的取决于你的遗留数据库有多深奥。这会极大地影响解决方案。如果您的遗留数据库与 Rails 约定非常相似,那么使用带有一些自定义的模型可能会被证明是最好的方法。但是,我听说有人编写了一个脚本,不断将旧数据库中的数据重新导入新数据库 - 数据库的整个结构非常错误,因此值得这样做。

    【讨论】:

    • 感谢您的意见。这是一个相当小的数据库,结构并不完全可怕,只是有点不规范。但是,我更愿意采用使用定制模型的方法。您可以指出我的任何示例/资源吗?谢谢
    • ActiveRecord 文档应该会引导您前进。请记住,您始终可以使用虚拟属性,如果您的 rails 名称和您的 db 名称之间存在严格的映射,您始终可以编写 method_missing
    猜你喜欢
    • 1970-01-01
    • 2018-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多