构造案例
创建项目
rails _4.2.2_ new active_record_second -d=mysql
修改Gemfile文件,把gem源替换为source 'https://gems.ruby-china.org'
,把gem 'mysql2'替换为gem 'mysql2', '~> 0.3.18'
把database.yml文件里面的数据库密码设置为本地mysql数据库的密码
cd active_record_second
bundle install
rake db:create
构造数据
A表和B表的多对多关系是需要通过中间表C,表C保存两个表的外键。而A表和B表则保持原有结构即可,不需要添加C表的外键。
首先需要products表的数据,我们直接在navicat里面像复制文件一样,用ctrl+c和ctrl+v的方式把products表复制到active_record_second_development数据库就行
rails g migration CreateActivityFloors
rails g migration CreateActivityFloorProducts
rake db:migrate
添加模型文件
迁移文件里面像
t.string :ID, limit: 36, primary: true, null: false
这样给字段设置为主键是不报错但是不生效的,于是我们通过navicat把表中ID字段都设置为主键。
填充数据
一个楼层下面有多个商品,一个商品有多个楼层(这里我们p1商品同时属于3个楼层)
rails c下检验关联关系
-
一个楼层对应多个商品
-
一个商品可以属于多个楼层
关联时自己指定外键
我们给活动楼层再加个1对多关联,一个顶部活动下面有多个活动楼层
rails g migration CreateTopActivities
rake db:migrate
rails g migration AddTopIdToActivityFloors
rake db:migrate
如上,我们给activity_floor指定外键,不一定非要按默认约定命名为TopActivityID,我们添加外键为TopID
-
修改和填充数据
-
添加模型文件和模型关联
-
使用指定外键,在rails c下试验说明关联成功
使用Git做版本控制
进入项目根目录
.../active_record_second# git init
Initialized empty Git repository in /home/**********/active_record_second/.git/
git add -A
git commit -m "ActiveRecordSecond"
然后创建一个git仓库
提交
git push -u https://github.com/xiaohuacc/active_record_second.git master