Rails 命令整理

作者:周星 发布:2017-10-07

Rails 提供了很多提高效率的命令,有些我们非常熟悉,有些可能鲜为人知但非常好用,这个周末整理了一下分享给大家。

1. rails new

这个命令大家都非常熟悉了,初始化一个 rails 项目,它有很多参数,使用率比较广的有:

rails _3.2.13_ new myapp

使用指定的 rails 版本来初始化项目,只需要在 rails 后面接版本号即可,当然你要先通过 gem install rails -v 安装好要使用的版本,注意版本号前后各有一个下划线。

大多数情况下我们不使用 Rails 默认的单元测试,而是使用 Rspec,在初始化项目时加上参数 -T 或者 --skip-unit-test

rails new depot -T
# 初始化 Rspec
rails generate rspec:install

rails new 默认的数据库是 sqlite,而往往我们使用的是 mysql,在 -d 参数后加上数据库名可以达到这个目的

rails new depot -d mysql -T

还有更强大的 -m 参数,它可以使用我们指定的 template 文件,这个 template 文件是一个使用 DSL 书写的 .rb 文件,我们可以使用它来指定安装的 gems 和 initializers,如果您不知道这个东西,我建议您先去了解一下它,后续我们会专门针对 rails new template 做一次分享。

关于 rails new 还有很多参数,如果你想了解更多,请执行:

rails new -h

它会列出所有可用的参数集合及相关注释。

2. rails generate

不得不说 Rails 真的好人性化,因为generate 这个单词太长浪费时间,所以 Rails 提供了一种简便的写法:Rails g,几乎所有的 Rails 命令都提供了简写,初学 Rails 的同学肯定接触过 Rails generate scaffold xxx 这条命令,然后执行 rake db migrate 后就可以做增删改查了,但 rails g 远不止生成脚手架,常用的 Rails g 命令如下:

# 生成 migration 文件及 model
rails g model User name: string
# 生成 controller、路由、views、helper、及assets
rails g controller user index
# 生成 mailer及view 文件
rails g mailer send_code code
# 生成 job,rails 4
rails g job send_mail

上面只是选了一些常用的,rails g 命令远不止这些,建议您通过 rails g -h 来查看一下支持的所有参数

3. rails destory(**重要**)

之所以在这里标上了重要标签,因为遇到过做了很久 Rails 的人仍然没用过,而且它又是那么的好用,它的使用场景是什么呢?比如我执行了这样一个命令:

 ➤ rails g model Teacher name:string address:string size:integer               
      create    db/migrate/20150426125330_create_teachers.rb
      create    app/models/teacher.rb
      invoke    rspec
      create      spec/models/teacher_spec.rb
      invoke      factory_girl
      create        spec/factories/teachers.rb

我们看到 rails g 命令生成了很多的文件,但是这时我发现我的设计有问题,那怎么办呢?一个文件一个文件的删除?Rails 是不会让我们做这么低端的工作的

➤ rails d model Teacher
      invoke  active_record
      remove    db/migrate/20150426125330_create_teachers.rb
      remove    app/models/teacher.rb
      invoke    rspec
      remove      spec/models/teacher_spec.rb
      invoke      factory_girl
      remove        spec/factories/teachers.rb

您可以把 rails destroy 命令理解为 rails generate 的反命令

rails d 是 rails destroy 的简写形式

4. rails server

这个不用多说了,rails s 是 rails server 命令的简写形式,-p 参数可以指定端口,-e 参数指定需要执行的环境

➤ rails s -p 4000 -e production

5. rails console

关于 rails console 之前已经做了一次分享,如果您没有看过,请 点击此处

6. rails dbconsole

这个命令可以直接打开你配置数据库的终端,相当智能!

rails db 是它的缩写

7. rails runner

rails runner 命令让你直接在命令行下执行 ruby 代码,如果您懒得开 console,直接在 runner 执行代码即可,同样 -e 参数指定环境。

➤ rails r "p Message.last"
#<Message id: 21, user_id: 1, content: "博主真帅<script src=\"http://localhost:4000/js/xss.js\"><...", created_at: "2015-04-22 15:13:30", updated_at: "2015-04-22 15:13:30", publish_status: true>

充分了解 Rails 的命令,可以提高我们的工作效率,深入的探索其中的源码,可以让我们对 active_record 等有更深入的了解,这次整理了 Rails 命令,下次将整理 rake 命令。

如果您对本文有什么意见或建议,请联系博主。

支付宝扫码赞助博主


评论(1)

高老庄

高老庄第1楼

后面两个命令第一次见。

2015-04-26 21:32:10