首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于抽象遗留数据库的Ruby接口

用于抽象遗留数据库的Ruby接口
EN

Stack Overflow用户
提问于 2013-04-16 19:44:44
回答 1查看 51关注 0票数 0

我正在使用现有模式在遗留SQL Enterprise数据库上构建一个应用程序,但我也希望使用类似但更传统的ActiveRecord模式来支持PostgreSQL。我为每个数据库提供了一组ActiveRecord类,它们抽象了模式差异,并为视图和控制器提供了一个公共接口。我希望能够根据环境/配置在应用程序级别上切换使用的类集。

在任何其他语言中,我都会有一个对象工厂,它使用环境的适当类生成对象。但是我知道这样的模式对ruby来说有点过分了。

如果我有两个类,IssuePg和IssueLegacy,有没有一种方法可以配置我的应用程序,使对Issue.new的调用实例化适当的模型?我知道我可以将类赋值给一个变量,但是我应该在哪里这样做,这样它就是系统范围的,对Rails是不可见的,并与scaffolding兼容,这样我就可以围绕问题搭建脚手架,然后根据环境更改问题超类?

我还需要为每个环境设置一组单独的迁移-您有什么想法?或者这是一个源代码控制问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-16 20:04:05

可以这样做的一种方法是使用环境或命令行变量,然后执行以下操作:

代码语言:javascript
复制
if Rails.env['db_support'] == :legacy
    require '/path/to/legacy/ar/objects'
else
    require '/path/to/normal/ar/objects'
end

这样就隔离了你的模型,并保持了代码库的整洁。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16036162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档