Ruby on Rails/示例
本节是Rails有用示例的集合。
rails 命令现在以 "rails" 开头,而不是 "script/"
script/generate model <Name>
生成空的模型和迁移文件。
vi db/migrate/XXX_create_<Name>.rb
向表中添加列。
rake db:migrate
迁移数据级别 - 即 - 创建新的数据库表。
vi app/models/<Name>.rb
定义验证、大小等。
vi test/unit/<Name>_test.rb
定义对模型验证进行练习的单元测试。
如果将有与该模型关联的控制器(和视图)
script/generate controller <Name> <action_one> <action_two> ...
创建控制器并为每个操作创建视图。
ActiveRecord 的 find 方法在Rails API 手册中进行了说明
pet = Pet.find(pet_id)
通过id(整数)查找记录。注意:返回一个对象。pet_id 应该是主键数字。
pets = Pet.find(:first, :conditions => ["owner_id = ?", owner_id])
- 返回第一个匹配的记录。[注意:返回一个对象。]
pets = Pet.find(:all, :conditions => ["owner_id = ?", owner_id])
- 查找所有具有给定字段值的记录。[注意:1. 返回一个对象数组。使用 pets.empty? 检查是否没有找到记录pets.empty?. 2.:conditions =>提供与 WHERE *一起使用的 SQL 片段]
pets = Pet.find(:all, :conditions => ["owner_id = ? AND name = ?", owner_id, name])
- 查找所有匹配多个字段值的记录。[注意OR也适用。]
pets = Pet.find(:all, :conditions => ["name LIKE ?", "Fido%"])
- 查找所有匹配模式的记录。通配符是%用于零个或多个任何字符,并且_用于任何单个字符。要转义通配符,请使用\%或\_. 来自MySQL 的 LIKE 参考将有所帮助。在MySQL Regex 网站 上,您将找到使用 REGEX 的示例。
pets = Pet.find(:all, :order => 'name')
- 查找所有内容并按名称排序结果。
pets = Pet.find(:all, :limit => 10, :conditions => ["owner_id = ?", owner_id])
- 返回不超过:limit 指定的行数。
pets = Pet.find(:all, :offset => 50, :limit => 10)
- 使用offset 跳过前 50 行。
$ rake db:migrate
- 通过执行<app>/db/migrate 中的脚本迁移到最新级别<app>/db/migrate. 注意:迁移脚本是通过script/generate model <mod-name>
$ rake
- 运行所有测试。
$ rake test:functionals
- 运行功能测试,测试控制器。
$ rake test:units
- 运行单元测试,测试模型。
$ test/functional/<name>_controller_test.rb
- 运行一个功能测试。
$ rake doc:app
- 为应用程序生成Ruby 文档。文档放在<app>/doc/app/index.html.
$ rake log:clear
- 删除所有日志。
$ rake tmp:clear
- 删除临时文件。
$ script/server
- 启动此应用程序的 Web 服务器。默认情况下,服务器在开发模式下运行。默认情况下,它可以在以下 Web 地址访问:https://127.0.0.1:3000/
$ RAILS_ENV=test script/server
- 在测试模式下启动 Web 服务器。
$ script/server -e test
- 在测试模式下启动 Web 服务器。
$ script/server -e production
- 在生产模式下启动 Web 服务器(更多缓存等)。
some_number.to_s
- 每个 Fixnum 都有方法.to_s将其转换为字符串。
一些我总是试图记住的有用的 shell 命令
grep -r hello .
- 运行 grep,在从当前目录开始的树中的每个文件中搜索“hello”。
tar -cvzf archive.tgz <targ_directory>
- 将目录打包并使用 gzip 压缩。