ROR学习笔记1

在成功的安装好ROR环境后(本人安装的是InstantRails-2.0-win),所做的第一件事,就是要创建一个最简单的DB demo了,步骤如下:

 

1.Rails Appliction中 Create New Rails App...

 

2.创建应用程序框架: rails demo -d mysql (表示创建应用程序demo,并使用mysql数据库做为默认数据库),此时将生成一堆文件

 

3.打开config/database.yml,修改其中的数据库相关的配置,保证其能连接上数据库(本人数据库名为默认demo,因为在开发阶段,所以数据库名为demo_development)

 

4.现在开始创建数据库,用instantRails自带的phpmyadmin创建数据库demo_development

 

5.创建scaffold, 命令: ruby script/generate scaffold User name:string pass:string age:integer ,命令执行成功后,会生成相应的MVC文件,和第一个版本的数据库迁移文件001_create_users.

 

6.上一步的操作只是生成了相应的文件,并没有实际在数据库中生成表,要实际生成表,需要使用rake进行数据迁移,命令:rake db:migrate ,执行成功后,检查一下数据库,会发现生成了一个users表(注意:这里的表名是users,比前面的User多了一个s,是一个复数形式),同时也生成了一个表名叫schemainfo,这个表是记录数据库版本信息的,观察里面的数据,只有一个version字段,并且此时的version的值为1.

 

7.运行ruby script/server ,服务器运行起来后,打开浏览器http://localhost:3000/users, 出现user列表,以及相应的CRUD相应的链接,CRUD成功执行,至此,一个最简单的db demo成功创建完成。

 

8.上一步的demo创建成功,这一步我想要在users表中新增加两个字段phone和mobile,此时仍然需要用到rake的数据库迁移工具,先执行 ruby script/generate migration add_phonemobile ,成功后会生成一个第二个版本的数据库迁移文件:002_add_phonemobile.rb,编辑这个文件,修改为:

class Add_Phonemobile < ActiveRecord::Migration
  def self.up
   add_column :users, :phone, :string
   add_column :users, :mobile, :string
  end

def self.down
   remove_column :users, :phone
   remove_column :users, :mobile
  end
end

 

9.再次运行rake db:migrate,执行完成后,会发现数据库中新增加了phone和mobile两个字段. 观察schemainfo的数据,version值变为2.

 

10.总结一下:rake db:migrate在数据迁移的时候,会去查找数据库中的version值(DBVersion),并且与当前应用的migrate目录下的最后一个数据库迁移文件做对比(AppVersion),如果 AppVersion==DBVersion,它是不会去做数据迁移操作的,只有AppVersion>DBVersion,才会做迁移操作,这一点要谨记,之前我就因为这个原因,做数据库迁移的时候,执行命令没有出错,可是数据库里面的字段就是没有变化。

 

11.如果想要回到以前的数据库版本,可以执行命令:rake db:migrate version=x,这里的x就代表代想要回到的版本号。

 

12.做完数据库迁移后,刷新view,本人发现里面的字段是最初生成的name:string pass:string age:integer,三个字段,并没有新增字段,此时需要手动将新增的字段修改到CRUD view上面去,不知道有没有自动更新view的方法。

 

好啦,这个demo就到此为至,作为我的第一个ror学习笔记。以后我会坚持写ror笔记,盼望能学得快一些!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值