使用rails高效开发之快速创建控制器 视图 模型和数据库文件

上文回顾:上文说明了在windows中快速创建环境的方法。

教你10分钟内在Windows上完成Rails开发环境的安装和配置

本文内容:本文将介绍,那些效率非常高的快速创建文件和数据库的命令,包括:

1,新建项目


先切换到准备放置项目的目录:

?
cd rudy/work

  然后,创建新的项目,我使用mysql 数据库,所以加了--database=mysql参数,如果不加参数,rails的默认数据库是SQLite3 :

  提示:经过多次测试,网络上其它两种方法-d mysql 和-database=mysql都不会自动生成database.yml文件为mysql的配置。

?
rails new jiaocheng --database=mysql

  创建完成后,使用dos的dir /p/w查看创建了哪些文件和目录

2,创建数据库:

数据库的配置信息在config/database.yml文件中。(snwrking: 这是rails new 命令加了--database=mysql后自动加的。这样在这个工程的config的database.yml中就是mysql的设置)

?
development:
   adapter: mysql2
   encoding: utf8
   reconnect: false
   database: jiaocheng_development
   pool: 5
   username: root
   password:
   host: localhost
  
test:
   adapter: mysql2
   encoding: utf8
   reconnect: false
   database: jiaocheng_test
   pool: 5
   username: root
   password:
   host: localhost
  
production:
   adapter: mysql2
   encoding: utf8
   reconnect: false
   database: jiaocheng_production
   pool: 5
   username: root
   password:
   host: localhost

配置分别对应开发、测试和生成数据库的配置,把他们修改为自己的配置。

创建数据,如果mysql运行正常,rails配置正确,使用rake db:create命令,会在msyql中创建jiaocheng_test和jiaocheng_development两个数据库。命令如下,

?
rake db :create

  

3,创建后台控制器:

首先,删除public/index.html文件,因为rails优先读取public目录下的静态文件。

然后,创建一个名字叫User的控制器,控制中有一个home方法。
(注意:区分大小写。http://localhost:3000/user/home可以访问,user/Home是不能访问的。)命令如下,

?
rails generate controller User home

  

 

最后,设置首页。找到config/route.rb中,root :to=>'User#home',去掉注释并设置为自己的控制器。如图,

 

这时再访问:http://localhost:3000,结果如下,

 

4,增加或修改数据库中表的流程是:


首先,创建一个migrate文件,

?
rails generate migrate add_price_to_product price: decimal

 然后,调整文件,增加数据限制等信息,文件内容如下:
(提示:rails 3.1添加了一个change 更智能的方法,它可以判断何时回滚,就不再单独书写down方法。如果你在其它资料里看到up配合down的方法,仍然可以使用)

?
class AddPriceToProduct < ActiveRecord::Migration
   def change
     add_column :products, :price, : decimal
   end
end

  最后,使用rake db:migrate方法。

?
rake db :migrate

 除了add_column 此文件中支持的方法还有:

?
create_table
change_table
drop_table
add_column
change_column
rename_column
remove_column
add_index
remove_index

  

5,同时创建模型和数据库:


rails 的Migrations 还提供了同时创建模型和数据库中的表的命令:

?
rails generate model Product name: string description:text

 

这会创建模型和一个db/migrate/*.rb的文件,适当修改此文件,然后执行,

?
rake db:migrate

  

查看数据库,发现增加了表products注意:表名称比输入的名称多了"s",这是自动加的,用于区分英文的单数和复数。如果使用拼音,也会自动添加一个"s"。

 

6,使用脚手架快速建立一组Model,、Views、Controller和数据库:

使用scaffold,

?
rails generate scaffold Post name: string title: string content:text

  产生的15 个文件录,以下是个简单的说明:

档案目的
db/migrate/20120104214725_create_posts.rb用来建立posts 资料库资料表的Migration (你的档案开头名称会有不同的timestamp)
app/models/post.rbPost model
test/fixtures/posts.yml用来测试的假文章资料
app/controllers/posts_controller.rbPosts controller
app/views/posts/index.html.erb用来显示所有文章的index 页面
app/views/posts/edit.html.erb用来编辑文章的页面
app/views/posts/show.html.erb用来显示特定一篇文章的页面
app/views/posts/new.html.erb用来新增文章的页面
app/views/posts/_form.html.erb用来显示编辑和新增文章的表单partial
app/helpers/posts_helper.rb可在文章views 中使用的Helper 函式
test/unit/post_test.rbposts model 的单元测试
test/functional/posts_controller_test.rbposts controller 的功能测试
test/unit/helpers/posts_helper_test.rbposts helper 的单元测试
config/routes.rb设定URL路由规则的档案
public/stylesheets/scaffold.cssCSS样式档案

调整db/migrate/*.rb文件,后执行rake db:migrate,在数据库中添加Posts表。

?
rake db:migrate

 7,回退操作:

如果你跟随我上面的操作,就会创建了许多文件,例如创建了控制器,命令如下,

?
rails generate model Product

  如何删除和取消上面的操作呢?使用destroy命令,它的作用和generate相反。

?
rails destroy model Product

  

数据库的操作如何取消?取消上一步,

?
rake db :rollback

  取消前三部操作,

?
rake db :rollback STEP = 3

  我们知道db/migrate/*.rb文件是用时间戳命名的,如果你在其中写了特定的:up :down,可以指定回退某一个版本,命令如下,

?
rake db :migrate :up VERSION = 20120104120000

  

 

 

转载出处:http://www.cnblogs.com/tambor/archive/2012/01/04/rails_migrate.html

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值