更新: 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 |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |