ROR项目中连接多个数据库的方法!!

[复制链接]
首先打开config目录中的database.yml文件,配置要访问的另外一个数据库的信息。

other_db_name_connection:   
  adapter: mysql   
  database: other_db_name   
  username: root   
  password:   
  encoding: utf8   
  host: localhost
这个数据库可以和以前的数据库在同一台机器上,也可以在其他的机器上,在host里边可以完全配置。

然后生成一个继承ActiveRecord::Base的抽象类

class External < ActiveRecord::Base   
  self.abstract_class = true   
  establish_connection :other_db_name_connection   
end
现在这个继承类重写了
ActiveRecord::Base 的数据库链接,而这个链接就是我们在配置文件里边定义的。
dupal_database,那么这个类的代码就要进行部分的改变。
如下:

class DupalDatabase::External < ActiveRecord::Base     
   self.abstract_class = true     
   establish_connection :other_db_name_connection     
end
然后再新建一个model文件,生成一个新的model类。这个新的model类继承了上边的抽象类
将继承上边的model类和上边的这个抽象类放到一个包里。按照上边的,我们暂时放到dupal_database

class DupalDatabase::Stock < DupalDatabase::External   
  self.table_name =\'day_info\'   
end
如果利用其它系统的数据库,或者其他表的名字会变,那么最好自定义表名

最后我们来调用访问
访问的时候如果你把model放到其他的目录里边比如上边的目录,那么访问起来就是:

stock =DupalDatabase::Stock.find(:all)   
stock= DupalDatabase::Stock.new()
现在rails当中就可以完全的访问不同的数据库了,这种方式用过可以应用到rails的分布式架构中。。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏
收藏0
本帖违规,我要举报
举报本帖
免责声明:
本站资源均来源于网络或是会员上传,版权和著作权归原作者所有,如有不愿意被转载,请点击这里通知我们第一时间删除!
所有资源仅供下载后在本地学习研究参考使用!您必须在下载资源后的24个小时之内,从您的电脑中彻底删除。
所有资源不能用于任何商业和非法目的,否则一切后果请用户自负。如您需要商用,请支持和购买正版,本站不对您的使用负任何责任!
会员所发布的信息中如有涉及到具体的第三方个人(单位/公司)隐私、商业秘密等,侵犯其权益,对其构成不良影响的,本站有权不做通知直接删除!

精彩评论3

跳转到指定楼层
#沙发
icefoxit 发表于 2008-10-15 10:31:03 | 只看该作者
好东西!学习了!谢谢楼主
#板凳
hdot 发表于 2008-10-16 02:09:21 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
#地板
pdw888 发表于 2008-10-17 20:09:45 | 只看该作者
8 8 还要努力啊~
什么都看不懂
您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

发布主题
15年专注源码提供
侵权投诉处理

点击这里投诉侵权

周一至周日10:00-21:00

反馈建议/违规信息举报

webmaster@souho.net 在线客服咨询

扫描二维码关注我们

严禁任何人以任何形式在本站发表与我国法律相抵触的言论!本站资源仅供本地学习研究,禁止用于任何违法犯罪活动!

搜虎源码所有资源来自网络收集整理,版权和著作权归原作者所有,仅供本地研究学习。若有侵权,请联系管理员及时删除!

所有资源严禁用于任何商业目的,否则一切后果请用户自负。如您需要商用,请支持和购买正版,本站不对您的使用负任何责任!

如会员所发布的信息中有涉及到具体的第三方个人(单位/公司)隐私、商业秘密等,侵犯其权益,对其构成不良影响的,本站有权不做通知将该信息予以直接删除处理!

网站备案号: 鄂ICP备17009394号-2