由于历史原因,公司有一个非 rails 平台的应用(java/php 什么的),现在需要扩展功能,我考虑能不能用 rails 来实现扩展。那么怎样在这个既存的数据库上来架构 rails 应用?rails activerecord 对数据库表结构有较为严格的命名规范,直接搭肯定会有很多问题,我能想到的简单办法是原有应用扩展数据接口,通过 web api 方式交互数据,但这样显得较为繁琐,效率也比较低,有没有办法直接在原数据库上进行扩展?请大家给点思路。
根据 rails 对相关表名、字段的规范,重新设计数据库,然后导入数据。这样比较好。 不然你就人肉到 model 里搞什么 set_table_name 什么的咯
哦,扩展不是重写啊,那就搞点 set_table_name 什么的咯
如果老应用还要继续使用,而新的只是部分功能的话,可以考虑让老应用提供 API , 新的独立搞数据库,通过 API 关联。
在 rails2 的时候用过这个插件,来定义遗留数据库和字段的 mapping 规则 https://github.com/sshaw/transform_legacy_attribute_methods
rails3 的话,要仿照这个插件来写点代码了。
旧系统要不变的话,就手工定义表名和字段的定义。作为参考,可以读 Rails Recpies (Rails 3 Edition) 的第十条:Connect to Legacy Databases
#4 楼 @ashchan 这本书的电子版哪里有?我 google 了一圈,要么就只有个介绍要么就是要注册会员下载。
#5 楼 @alucardpj pragpub 上可以直接买。如果你是问我盗版渠道...