作者giive (lala)
看板Ruby
标题[心得] Active Record 连结到旧 DB(手动修改)
时间Fri Sep 22 17:30:58 2006
出自我的 Blog
http://lightyror.blogspot.com/2006/09/active-record-db.html
最近遇到几个小 Project
都是要连结到本公司主力产品的DB
当然啦,那时候没有用 Rails
所以DB Schema 绝对不可能按照 Rails 的预设安排
但是书上有说
There is always way to overridden it.
现在就来看看怎麽 ActiveReocrd overriden 原本的预设
这里要注意的是,如果你的旧 DB 命名没有任何规则可言的话
请使用我这个方式
但是,如果你的旧 DB 命名方式有点规则的话
像是 table name 只是没加 s
或是开头都有固定的字首
那还有比较好的方式可以设定
不过那些之後再提 :p
一开始,最重要的是 table 命名,以及 primary key 的命名问题
set_table_name 'table_name'
set_primary_key 'table_name_id'
只要指定这两个就可以将 Model 连结到旧 table 了
处理relationship 的时候
要注意 class_name 以及 foreign_key 的不同
has_one :legacy_table_model ,
:class_name => 'legacy_class_name',
:foreign_key => 'key'
belongs_to :legacy_table_model ,
:class_name => 'legacy_class_name',
:foreign_key => 'key'
通常你希望使用正常的话, has_xxxxxxx 跟 belongs_to 最好乖乖设定好
这样正常使用上就没问题了
--
lighty RoR 是一个介绍 lighttpd , SQLite , Ruby and Rails 的 Blog
http://lightyror.blogspot.com/
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.218.90.242