代码之家  ›  专栏  ›  技术社区  ›  olle

Rails的未定义方法“env”:模块

  •  1
  • olle  · 技术社区  · 15 年前

    我想和RoR一起测试一下MongoDB的水域。我正在尝试使用以下命令创建项目:

    rails mono_test_app -m http://gist.github.com/raw/284753/b5584c78fb5d29ab39a8218090801ea89b95a541/Rails%20MongoMapper%20Template
    

    部分输出为

    create  log/test.log
        applying  template: http://gist.github.com/raw/284753/b5584c78fb5d29ab39a8218090801ea89b95a541/Rails%20MongoMapper%20Template
       executing  rm public/index.html from /Users/olle/Projects/mono_test_app
       executing  rm public/images/rails.png from /Users/olle/Projects/mono_test_app
       executing  rm public/javascripts/controls.js from /Users/olle/Projects/mono_test_app
       executing  rm public/javascripts/dragdrop.js from /Users/olle/Projects/mono_test_app
       executing  rm public/javascripts/effects.js from /Users/olle/Projects/mono_test_app
       executing  rm public/javascripts/prototype.js from /Users/olle/Projects/mono_test_app
            file  app/views/layouts/application.html.erb
                  What should I call the database? 
    experiment
    undefined method `env' for Rails:Module
    Projects olle$ 
    

    我用-m参数指定的模板包含

    # MongoDB FTW!
    db_name = ask('What should I call the database? ')
    
    initializer 'database.rb', <<-CODE
    MongoMapper.database = "#{db_name}-#{Rails.env}"
    CODE
    
    file 'config/database.yml', <<-CODE
    # Using MongoDB
    CODE
    

    Github上的所有人似乎都分叉或克隆了Gist,并似乎在使用它,为什么在我的系统上会发生此错误?我错过什么了吗?

    我在OSX和Ubuntu上都试过 Ruby1.8.7(2008-08-11补丁级别72)[I686-Darwin9.7.0] Rails 2.3.3

    2 回复  |  直到 15 年前
        1
  •  3
  •   marcgg    15 年前

    Rails.env 是Rails 3.0的方法吗?如果不使用此版本,请使用 RAILS_ENV 相反

        2
  •  1
  •   alex.zherdev    15 年前

    我想原因是代码中的某个地方 Rails.env 使用。这是相当新的,我怀疑在Rails 2.3.3中是否可以做到。搜索该短语并将其替换为 RAILS_ENV 看看这是否有帮助。