2016-09-21 51 views
0

我想创建一个Ruby应用程序,可以托管在Openshift上,但我遇到以下错误,当我尝试使用rails g mongoid:config命令通过终端。我试过了在stackoverflow上找到的所有东西,但错误仍然存​​在!我究竟做错了什么?Rails 4&Ruby 1.9错误生成mongoid:配置

这里是错误:

/home/themis/.rvm/gems/ruby-2.3.0/gems/activesupport-4.0.3/lib/active_support/values/time_zone.rb:282: warning: circular argument reference - now 
/home/themis/rails4/config/application.rb:6:in `require': cannot load such file -- active_job/railtie (LoadError) 
    from /home/themis/rails4/config/application.rb:6:in `<top (required)>' 
    from /home/themis/.rvm/gems/ruby-2.3.0/gems/spring-1.7.2/lib/spring/application.rb:82:in `require' 
    from /home/themis/.rvm/gems/ruby-2.3.0/gems/spring-1.7.2/lib/spring/application.rb:82:in `preload' 
    from /home/themis/.rvm/gems/ruby-2.3.0/gems/spring-1.7.2/lib/spring/application.rb:143:in `serve' 
    from /home/themis/.rvm/gems/ruby-2.3.0/gems/spring-1.7.2/lib/spring/application.rb:131:in `block in run' 
    from /home/themis/.rvm/gems/ruby-2.3.0/gems/spring-1.7.2/lib/spring/application.rb:125:in `loop' 
    from /home/themis/.rvm/gems/ruby-2.3.0/gems/spring-1.7.2/lib/spring/application.rb:125:in `run' 
    from /home/themis/.rvm/gems/ruby-2.3.0/gems/spring-1.7.2/lib/spring/application/boot.rb:19:in `<top (required)>' 
    from /home/themis/.rvm/rubies/ruby-2.3.0/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
    from /home/themis/.rvm/rubies/ruby-2.3.0/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
    from -e:1:in `<main>' 

和我的Gemfile

source 'https://rubygems.org' 
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails' 
gem 'rails', '4.0.3' 
gem 'mongoid', git: 'https://github.com/mongoid/mongoid.git' 
gem 'twitter-bootstrap-rails' 
gem 'less-rails' 
# Use Puma as the app server 
gem 'puma', '~> 3.0' 
# Use SCSS for stylesheets 
gem 'sass-rails', '~> 4.0.0' 
# Use Uglifier as compressor for JavaScript assets 
gem 'uglifier', '>= 1.3.0' 
# Use CoffeeScript for .coffee assets and views 
gem 'coffee-rails', '~> 4.2' 
# See https://github.com/rails/execjs#readme for more supported runtimes 
gem 'therubyracer', platforms: :ruby 

# Use jquery as the JavaScript library 
gem 'jquery-rails' 
# Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks 
gem 'turbolinks', '~> 5' 
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder 
gem 'jbuilder', '~> 2.5' 
gem "rspec" 
# Use Redis adapter to run Action Cable in production 
# gem 'redis', '~> 3.0' 
# Use ActiveModel has_secure_password 
# gem 'bcrypt', '~> 3.1.7' 

# Use Capistrano for deployment 
# gem 'capistrano-rails', group: :development 

group :development, :test do 
    # Call 'byebug' anywhere in the code to stop execution and get a debugger console 
    gem 'byebug', platform: :mri 
end 

group :development do 
    # Access an IRB console on exception pages or by using <%= console %> anywhere in the code. 
    gem 'web-console' 
    gem 'listen', '~> 3.0.5' 
    # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring 
    gem 'spring' 
    gem 'spring-watcher-listen', '~> 2.0.0' 
end 

# Windows does not include zoneinfo files, so bundle the tzinfo-data gem 
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] 

回答

0

这是一个错误的ActiveSupport(因此Rails的错误)。

线282在activesupport-4.0.3/lib/active_support/values/time_zone.rb

def parse(str, now=now) 
    # ... 
end 

而同一文件的线308是

def now 
    # ... 
end 

的问题是在默认PARAM now=now,其红宝石斗争理解后者now是否是一个方法调用或者只是一个局部变量(参数本身)。

如果您将now=now更改为now=now(),则一切正常。

这个bug在Rails 4.0.6中修复。

+0

谢谢,但我找不到这些文件!看起来这个位置不存在 –

+0

它位于'/ home/themis/.rvm/gems/ruby​​-2.3.0/gems/activesupport-4.0.3/lib/active_support/values/time_zone.rb' – Aetherus