现在我有个数据库,20 几个表,以前是用于 php 的,现在想用 RoR 试着重写,现在的问题是如何通过这些已有的表建立相应的模型呢?像命令: rails generate model Product name:string description:text
可能跟我已有表的字段类型有些匹配不起来,长度也不一样,这个该如何解决?
Reverse engineering... 这时候就无比的怀念 hibernate。
我想,这个大概是你想要的
class YourModel < ActiveRecord::Base
set_table_name 'your_table_name'
end
导出当前的 schema
rake db:schema:dump # Create a db/schema.rb file that can be portably used against any DB supported by AR
@dume2007 ,这个估计你能用上 指定此使用 mydatabase 这个 database 中的 your_model 表
class YourModel < ActiveRecord::Base
establish_connection :mydatabase
end
database.yml 中加上
mydatabase:
adapter: mysql
encoding: utf8
collation: utf8_general_ci
reconnect: false
database: mydatabase
username: root
password: root
host: localhost
#11 楼 @oldfritter 一些老系统的数据库设计用了很多约束,也不够 Rails,用 factory_girl 之类的写测试也不方便,可以试试 machinist
正巧也在做类似的,AR 其实也是支持反向工程的,看你怎么用啦,二楼的rmre没用过,我都是手写 model 的。。
class EicKgdtestprogram < ActiveRecord::Base
self.table_name = 'f_kgdprodprog'
establish_connection("eic")
default_scope -> { where flag: 1 }
def readonly?
true
end
belongs_to :productbase, :primary_key => "prod_id", :foreign_key => "productname"
end
class Productbase < ActiveRecord::Base
# 这个可以是正常表
end