Ruby on Rails 笔记1-Rails常用命令

CookBook-1 Rails常用命令

1. 新建程序

rails new blog

新建一个blog的rails项目,会自动创建一系列文件夹和文件,主要文件和作用如下表所示

文件/文件夹 作用
app/ controllers,views,models,helpers,mailers
bin/ 运行程序的rails脚本 rails rake bundle等
config/ routes database.yml
db/ 当前数据库模式,以及数据库migrate文件
Gemfile 指定gem依赖件

2. 启动/停止服务

rails server&rails s

完成程序后,开启Ruby的内置服务器WEBrick,访问http://localhost:3000,可以看到Rails信息页面,类似PHP的phpinfo()

Control + C

停止Ruby内置服务器WEBrick

3. 创建动作控制器Controller

Action Controller 是 MVC 中的 C(控制器)。

控制器负责解析用户请求,生成对应的请求。

控制器可以视作模型和视图的中间人,让模型中的数据可以在视图中使用,把数据显示给用户,再把用户提交的数据保存或更新到模型中。

Rails提供命令自动创建控制器,命令如下
rails generate controller welcome index

或者

rails g controller welcome index

使用后,主要效果如下表所示:

动作 文件
create app/controllers/welcome_controller.rb 创建welcome的控制器rb文件
route get ‘welcome/index' 配置相关路由
create app/views/welcome create app/views/welcome/index.html.erb 创建welcome的index视图

在Controller中可以编写所有的action,如果是RESTful的资源的话,主要有index、show、edit、update、delete等action

4. 创建模型Model

Active Record 是 MVC 中的 M(模型),处理数据和业务逻辑。

Active Record 负责创建和使用需要持久存入数据库中的数据,是一种对象关系映射系统。

Rails提供命令自动创建控制器,命令如下
rails generate model articles

或者

rails g model articles

使用后,主要效果如下表所示:

动作 作用
create db/migrate/20160821103242_create_articles.rb 创建数据库迁移migrate文件
create app/models/article.rb 创建artcile模型

5. 运行数据库迁移

每次在db/migrate文件夹中生成数据库迁移文件后,可以运行rake任务进行迁移(rails5.0以后,rake改为了rails)。

命令如下

rake db:migrate

Rails会执行迁移操作,在config/database.yml中的配置的数据库中做数据库表进行操作,如新建数据表,定义相关参数等

up()方法会清空数据表,然后再增加相关记录
down()方法会清空数据表

6.撤销创建好的Model和Controller

rails不但可以使用generate自动创建model和controller,还可以撤销,也就是删除。

命令如下

rails destroy model articles

rails d model articles

7 脚手架

利用一条命令,Rails可以自动建立controller、model、view、route,并且完成CRUD的action的创建
rails g scaffold product

8 创建数据迁移任务

在对数据库操作时,可以创建数据库迁移任务migration,在db/migratino/下创建
rails g migration add_price_to_product price:decimal
创建一个add_price_to_product的迁移任务,从字面上看是在product数据表中增加一个price属性,price是decimal类型的
迁移任务的源文件如下:

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

在products表中增加decimal类型的price列

你可能感兴趣的:(Ruby on Rails 笔记1-Rails常用命令)