Rails的三种环境----开发环境,生产环境和测试环境

时间:2022-07-10 17:20:00

Rails 的三个环境

Rails 的应用程序预设提供了三种不同的执行模式:

  • development environment 开发模式,用在你的开发的时候
  • test environment 测试模式,用在执行测试程式时
  • production environment 正式上线模式,用在实际的上线运作环境

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
Ruby console for yourapp.herokuapp.com
>> Rails.env
=> "production"
>> Rails.env.production?
=> true

Heroku 是用来部署网站的平台,自然会在“生产环境”中运行应用程序。