abstract:
查看Rails的环境
Rails 定义了三个环境,分别是测试环境、开发环境和生产环境。Rails 控制台默认使用的是开发环境:
$ rails console
Loading development environment
>> Rails.env
=> "development"
>> Rails.env.development?
=> true
>> Rails.env.test?
=> false
如前所示,Rails 对象有一个 env 属性,属性上还可以调用各环境对应的布尔值方法,例如,Rails.env.test?,在测试环境中的返回值是 true,在其他两个环境中的返回值则是 false。
如果需要在其他环境中使用控制台(例如,在测试环境中调试),只需把环境名传给 console 命令即可:
$ rails console test
Loading test environment
>> Rails.env
=> "test"
>> Rails.env.test?
=> true
Rails 本地服务器和控制台一样,默认使用开发环境,不过也可以在其他环境中运行:
$ rails server --environment production
如果要在生产环境中运行应用,先要有一个生产数据库。在生产环境中执行 rake db:migrate 命令可以生成这个数据库:
$ bundle exec rake db:migrate RAILS_ENV=production
(我发现在控制台、服务器和迁移命令中指定环境的方法不一样,可能会混淆,所以特意演示了这三个命令的用法。)
顺便说一下,把应用部署到 Heroku 后,可以使用 heroku run console 命令进入控制台查看使用的环境:
$ heroku run console
>> Rails.env
=> "production"
>> Rails.env.production?
=> true
Heroku 是用来部署网站的平台,自然会在生产环境中运行应用。