Rails rails 如何能够识别当前是 development 还是 production 的?

gazeldx · 2012年02月06日 · 最后由 brenda103 回复于 2016年01月11日 · 18508 次阅读

如题。

共收到 17 条回复

读取的 RAILS_ENV 这个环境变量

Rails.env才对

哦,我理解错了~

我把我的代码传到服务器上了,和development一模一样,不用做任何修改,服务器就知道是production吗?

用原始的/public/index.html看,参数一目了然。 rails/info/properties

#4楼 @gazeldx 这个取决你的部署环境。passenger 是默认用 production 启动。

#4楼 @gazeldx 服务器要通过你设置进去的 rackenv 才知道是跑 production 还是其他的。怎么调要看你用了什么 server。

确定不是? Rails.env.development? || Rails.env.production?

楼主的识别是从哪里识别,Rails应用内部就看Rails.env, 操作系统有环境变量RAILS_ENV如项启动production的console就需要设置环境变量RAILS_ENV=production rails c,如果是部署环境设置,就看不同的服务器的config.

感谢各位,特别是#9楼 @hisea Production环境中: 建表:rake RAILS_ENV=production db:schema:load 启动rails:RAILS_ENV=production unicorn_rails 我把我的代码发布到服务器上,rails默认的还是development的,因此必须加上RAILS_ENV=production切换一下

我来补充一下,在当前project下 $ rails console --> Rails.env 就能看到

ENV["RACK_ENV"]那这个算什么?貌似其他的都是引用的这个常量吧.

在apache或者是nginx的配置文件中声明一下rails_env。 或者准确的说,不是识别的,是在启动服务的时候指定的,指定开发环境,还是生产环境。

rails console

Loading development environment (Rails 3.2.13) 1.9.3-p484 :001 > Rails.env => "development" 1.9.3-p484 :004 > quit i# RAILS_ENV=production rails console Loading production environment (Rails 3.2.13) 1.9.3-p484 :001 > Rails.en => "production"

#10楼 @gazeldx 想问下如果生产环境中想在某个表中加一个属性该怎么加呢!进入后rails g migration add_area_to_oil 然后rake db:migrate 只把area加到开发环境的数据库中,生成环境还是会报错,不知道怎么弄了,求指点

#15楼 @brenda103 RAILS_ENV=production rake db:migrate

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册