【问题标题】:Rails.env returning "Production" even though I'm running in Development Mode?Rails.env 返回“生产”,即使我在开发模式下运行?
【发布时间】:2013-03-25 21:15:27
【问题描述】:

所以,我注意到最近我的 Airbrake 一直在发疯,因为我在为我的网站执行本地开发时出错......今天我意识到我的网站默认在生产模式下运行。

即使我跑步时:rails server -e development,

它仍然在生产模式下运行。

最近将应用程序更新为 Rails 3.2.* 而不是 2.3.* - 不确定这是否有帮助。

Running Thin 而不是 WEBrick。

谢谢!

【问题讨论】:

    标签: ruby-on-rails development-environment production-environment


    【解决方案1】:

    你在使用bundler吗?如果是,您可以:

    RAILS_ENV=development bundle exec thin start

    RAILS_ENV=development bundle exec rails s

    如果没有捆绑器,您可以尝试:thin start -e development

    ===== 一些 cmets 后更新 =====

    也许有一个配置文件会在您启动瘦时加载。要对此进行调试,您可以尝试使用以下内容创建一个简单的 .yml 文件(比如说 try.yml):
    environment: development

    然后尝试重新开始:bundle exec thin start -C try.yaml
    为确保加载此配置,您可以在 .yml 文件中添加如下内容:port: 9292,并查看应用程序是否在该端口上启动。

    【讨论】:

    • 感谢@burninggramma 的回复!不幸的是,即使使用这些特定命令,我的 rails 应用程序仍在生产中运行:/
    • 你能指定你的环境吗?
    • 对不起,我不确定你的意思:/如果你的意思是通过这些命令指定它 - 那么不,即使指定 RAILS_ENV=development-e development,它仍然在生产中运行
    • 首先你用的是bundler吗?如果是,是什么版本? bundle -v。什么版本的红宝石? ruby -vthin -v
    • 它都是最新的,它应该可以工作。 :/我帖子中的最后一个猜测。
    【解决方案2】:

    找到了解决方案! 我检查并删除了所有初始化程序文件,假设它们可能是一个问题。 逐一添加后,我发现了问题。

    在一个文件中,有一个关于 Rails.env 的 if/else 语句。

    if Rails.env = "production"

    显然,这是一个赋值而不是比较!

    应该改为:if Rails.env == "production"

    感觉自己像个菜鸟,但是嘿!我们就是这样学习的!

    感谢@burninggramma 的帮助!

    【讨论】:

      猜你喜欢
      • 2019-11-26
      • 1970-01-01
      • 1970-01-01
      • 2018-11-16
      • 2020-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多