更新: 2017/06/10
更新: 2017/06/21 增加迁移文件查看履历命令: rails db:migrate:status
迁移文件生成
数据库初始化(seed, fixtures)
更新: 2017/06/25 增加清空日志 rails log:clear
更新: 2017/06/29 增加查看路径的网页版: http://localhost:3000/rails/info/routes
增加查看版本 rails about
生成空间内的视图控制器(与方法)
更新: 2017/09/02 增加命名空间下的控制器生成 rails generate controller 空间名::视图控制器名 方法名
更新: 2019/01/16 增加rails new的--api选项
任务注释 |
格式 |
# TODO: ...
# FIXME: ...
# OPTIMIZE ... |
查看 |
rails notes |
个别查看 |
rails notes:todo
rails notes:fixme
rails notes:optimize |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
新建项目 |
rails new appName [option]
注明使用的rails版本号
rails new _4.2.0_
appName [option]
P23
|
查看版本 |
rails about |
|
启动服务器 |
rails server
rails s
rails server [name] [option]
name: HTTP服务器名
thin,Unicorn等等非Puma的 |
|
选项 Option |
=可省略
用=则左右不能有空格 |
使用的接口
默认3000 |
-p(=)
-port(=) |
使用的IP
默认0.0.0.0 |
-b(=)
--binding(=) |
守护模式 |
-d
--daemon |
指定模式
test, development, production
默认development |
-e (=)
--enviroment(=) |
PID文件
默认tmp/pids/server.pid |
-P
--pid(=) |
显示帮助信息 |
-h
--help |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
http://localhost:3000/ |
Puma服务器本地主机 |
生成类 |
rails generate controller name
[option] |
生成空间内的视图控制器(与方法)
rails generate controller 空间名::视图控制器名
方法名
例 rails g controller nameSpace::samples t1 t2 t3
t4
view的位置:
views/模块名/类名/... |
rails g controller name [option]
|
|
同时生成方法
rails generate controller name 1 2 3 4
5[option] |
|
同时生成方法
rails g controller name 1 2 3 4 5[option] |
|
opt |
-r
--ruby=
基础 |
ruby的二进制路径(pass)
c:\Ruby23-x64\bin\bury.exe |
-d
--database=DATABASE
基础 |
默认的数据库种类
默认sqlite3
(可选mysql,
oracle,
postgresql,
sqlite3,
frontbase,
ibm_db,
sqlsever等) |
-m
--template=TEMPLATE
基础 |
模板的位置 |
命名空间下 |
rails generate
controller 空间名::视图控制器名 方法名 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
生成方法 |
xxxx_controllers.rb里面定义方法(action,
method)
views里面新建嵌入式html文件 |
|
|
|
|
删除类 |
rails destroy controller name
rails d controller name |
模板变量 |
在模板(view)上可以参照的量,
Ruby里对应实例变量(@sample) |
生成模型类 |
rails generate model name field:type [...]
[options]
P48
类型首字母不大写
app
例子:
rails g model questionnaire question:string
veryAgree:boolean agree:boolean disagree:boolean
veryDisagree:boolean
|
生成迁移文件 |
和模型一起生成 rails generate model name field:type
[...] [options]
单独生成 rails generate migration name [field:type
...] [options] |
生成数据库 |
rails
db:migrate
db:migrate
|
运行到指定的版本处(VERSION=...)
不指定就是用最新版,把所有没迁移的全部迁移了
例: rails db:migrate VERSION=20161205000859 |
db:rollback |
回滚指定步
例: rails db:rollback STEP=5 |
db:migrate:redo |
回滚指定步并且重新迁移
例: rails db:migrate:redo STEP=5 |
db:migrate:reset |
先删除数据库,然后重新生成并且迁移最新版本
例: rails db:migrate:reset
删除production环境下的数据库
DISABLE_DATABASE_ENVIRONMENT_CHECK=1
windows下删除development下数据貌似也要p312 |
选项 |
|
RAILS_ENV |
设置测试用数据库环境: production, development,
test
默认 RAILS_ENV=development |
VERBOSE |
是否在命令行输出迁移的过程
默认true
VERBOSE=false |
|
|
|
|
|
|
|
生成并读取数据库 |
rails db:setup |
schema来构筑数据库 |
rails db:reset
schema文件位置 |
位置/app/db/schema.rb |
意义 |
自动获取最新的数据库表格信息
和迁移文件一样可能会有无法展现的对象(object) |
放弃现在的数据库,
用schema来构筑最新的数据库 |
rails db:reset
windows环境下加DISABLE_DATABASE_ENVIROMENT=1
注意: 只是重构,测试数据要另外读取 |
|
读取测试数据
seed |
初始数据来初始化(也可以用fixture)
位置 |
db/seed.rb
可能需要自己新建 |
形式 |
ruby脚本 |
内容 |
只需要写生成/保存数据的代码
如Sample.new(...)
|
运行 |
rails db:seed |
|
读取测试数据
fixtures |
rails db:reset
(DISABLE_DATABASE_ENVIROMENT_CHECK=1)
测试数据来初始化(也可以用seed)
位置 |
test/fixtures/
表格名.rb |
形式 |
yaml脚本
注: 缩进只能用手打两个空格 |
内容 |
标签:
域名: 数值
...
外部键间接写法
仅yml文件内可用 |
模型名: 标签 |
缩进 |
手打的2个空格 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
运行 |
rails db:fixtures:load
指定读取文件
位置: /test/fixtures/... |
FIXTURES=sample1, samples2, ...
默认: 读取全部 |
指定测试环境 |
RAILS_ENV=prodution/test/development
默认: development |
|
|
删除数据库 |
rails db:drop:all
(DISABLE_DATABASE_ENVIROMENT_CHECK=1)
括号内内容是删除production模式的数据库
windows下development模式好像也要 |
表示现在有效的路径 |
rails routes
网页版: http://localhost:3000/rails/info/routes
自动配置路径
routes.rb
resources: controller-name |
服务器客户端 |
启动 |
rails db
或 rails dbconsole |
表格一览 |
.tables |
确认特定表格结构 |
.schema samples |
表格内容一览 |
SELECT * FROM samples; |
关闭客户端 |
.quit |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
rails命令行 |
命令行测试模块(model)
启动 |
rails console opts
指定运行环境 |
rails console
test/development/production
默认development |
不保留变更 |
-s
--sandbox |
|
|
|
|
|
|
|
新建 |
test = modelTest.new(hp: 1200, mp:9999, ad:
12345) |
保存 |
test.save |
获取最后一个数据 |
last = ModelTest.last |
退出命令行 |
quit |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Scolffolding模式 |
rails generate scaffold name field:type [...]
[option]
name: 模块名,控件类名,视图名
field:type 占域的数据名称:数据类型
|
清空日志 |
rails log:clear |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|