【发布时间】:2014-01-15 19:23:52
【问题描述】:
我的应用程序出现错误,所以我查看堆栈并找到了一个答案 undefined method `require_relative' for main:Object (NoMethodError) 它说我应该运行 gem install rails,在我运行它之后,当我尝试运行 rails generate controller StaticPages home help --no-test-framework
我收到一个错误:
(in /usr/local/rvm/gems/ruby-2.0.0-p247@railstutorial_rails_4_0/gems/rails-0.9.5)
rake aborted!
ERROR: 'rake/rdoctask' is obsolete and no longer supported. Use 'rdoc/task' (available in RDoc 2.4.2+) instead.
/usr/local/rvm/gems/ruby-2.0.0-p247@railstutorial_rails_4_0/gems/rails-0.9.5/Rakefile:3:in `<top (required)>'
它说我正在运行 rails .95,即使当我运行 gem update rails 时也没有发生任何事情
这是我的 gemfile
source 'https://rubygems.org'
ruby '2.0.0'
gem 'rails', '4.0.2'
group :development, :test do
gem 'sqlite3', '1.3.8'
gem 'rspec-rails', '2.13.1'
end
group :test do
gem 'selenium-webdriver', '2.35.1'
gem 'capybara', '2.1.0'
end
gem 'sass-rails', '4.0.1'
gem 'uglifier', '2.1.1'
gem 'coffee-rails', '4.0.1'
gem 'jquery-rails', '3.0.4'
gem 'turbolinks', '1.1.1'
gem 'jbuilder', '1.0.2'
group :doc do
gem 'sdoc', '0.3.20', require: false
end
group :production do
gem 'pg', '0.15.1'
gem 'rails_12factor', '0.0.2'
end
【问题讨论】:
-
尝试运行
bundle exec rails generate ... -
@gotva 你知道为什么我需要运行 bundle exec 因为我以前从来不需要运行它
-
实际上你应该为
rails、rake、rspec等这样做,因为 Bundle 知道 APP 中使用的 gems 的确切版本(Bundler 从Gemfile.lock获取版本)-这意味着命令将从正确的源启动。 PS 如果您还没有阅读过有关捆绑的信息 - 请阅读 about bundler PPS 对您有帮助吗? -
@gotva 命令是
bundle install ..来安装新版本的 rake、rspec 和 rails -
这取决于您当地的环境。如果你有
Gemfile.lock并且你已经运行了bundle install那么NObundle会找到已经安装的gem并将使用它们。
标签: ruby-on-rails gemfile