42

操作系統是Ubuntu 12.04,64位。無法加載railtie後升級到rails 4每ruby.railstutorial.org

新的鐵路。 Ruby相對較新。遵循ruby.railstutorial.org教程,第3章。

本教程已更新爲使用ruby 2.0.0和Rails 4.0.0.rc1。以前,gemfile指定了Rails 3.2.13,並沒有指定Ruby版本。在學習本教程中的最新Gemfile之後,使用ruby 2.0.0和Rails 4.0.0.rc1,運行rails命令時出現以下錯誤。這裏的例子是軌服務器

[email protected]:~/bin/railslearn/sample_app$ rails server 
/home/paul/bin/railslearn/sample_app/config/application.rb:7:in `require': cannot load such file -- active_resource/railtie (LoadError) 
    from /home/paul/bin/railslearn/sample_app/config/application.rb:7:in `<top (required)>' 
    from /home/paul/.rvm/gems/[email protected]_rails_4_0/gems/railties-4.0.0.rc1/lib/rails/commands.rb:78:in `require' 
    from /home/paul/.rvm/gems/[email protected]_rails_4_0/gems/railties-4.0.0.rc1/lib/rails/commands.rb:78:in `block in <top (required)>' 
    from /home/paul/.rvm/gems/[email protected]_rails_4_0/gems/railties-4.0.0.rc1/lib/rails/commands.rb:75:in `tap' 
    from /home/paul/.rvm/gems/[email protected]_rails_4_0/gems/railties-4.0.0.rc1/lib/rails/commands.rb:75:in `<top (required)>' 
    from script/rails:6:in `require' 
    from script/rails:6:in `<main>' 

我沒有得到來自Rails: Could not find railties一些想法,下面列出,但尚未找到了解決。

以下是詳細信息。

昨天(在我的瀏覽器中)第3章的Gemfile如下。一切正常。

$ cat Gemfile 
source 'https://rubygems.org' 

gem 'rails', '3.2.13' 
gem 'bootstrap-sass', '2.1' 
gem 'bcrypt-ruby', '3.0.1' 
gem 'faker', '1.0.1' 
gem 'will_paginate', '3.0.3' 
gem 'bootstrap-will_paginate', '0.0.6' 
gem 'jquery-rails', '2.0.2' 

group :development, :test do 
    gem 'sqlite3', '1.3.5' 
    gem 'rspec-rails', '2.11.0' 
    # gem 'guard-rspec', '1.2.1' 
    # gem 'guard-spork', '1.2.0' 
    # gem 'childprocess', '0.3.6' 
    # gem 'spork', '0.9.2' 
end 

# Gems used only for assets and not required 
# in production environments by default. 
group :assets do 
    gem 'sass-rails', '3.2.5' 
    gem 'coffee-rails', '3.2.2' 
    gem 'uglifier', '1.2.3' 
end 

group :test do 
    gem 'capybara', '1.1.2' 
    gem 'factory_girl_rails', '4.1.0' 
    gem 'cucumber-rails', '1.2.1', :require => false 
    gem 'database_cleaner', '0.7.0' 
    # gem 'launchy', '2.1.0' 
    # gem 'rb-fsevent', '0.9.1', :require => false 
    # gem 'growl', '1.0.3' 
end 

group :production do 
    gem 'pg', '0.12.2' 
end 

今天早上教程中的Gemfiles使用了ruby 2.0.0和rails 4.0.0.rc1。我想讓這個設置工作,所以我沒有與更新的教程衝突。新的Gemfile如下。

$ cat Gemfile 
source 'https://rubygems.org' 
ruby '2.0.0' 

gem 'rails', '4.0.0.rc1' 

group :development, :test do 
    gem 'sqlite3', '1.3.7' 
    gem 'rspec-rails', '2.13.1' 
end 

group :test do 
    gem 'selenium-webdriver', '2.0.0' 
    gem 'capybara', '2.1.0' 
end 

gem 'sass-rails', '4.0.0.rc1' 
gem 'uglifier', '2.1.1' 
gem 'coffee-rails', '4.0.0' 
gem 'jquery-rails', '2.2.1' 
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' 
end 

首先,我在Gemfile中改變了紅寶石版本紅寶石「1.9.2」,因爲那是我正在運行,並認爲我有包更新錯誤。我沒有記筆記。

再變紅寶石版本回在Gemfile中「2.0.0」和:

$ rvm install 2.0.0 
$ rvm use 2.0.0 --default 
$ bundle update 
$ bundle install 

現在我得到不能與軌道命令加載railtie錯誤。

Rails: Could not find railties,我嘗試以下

$ gem uninstall railties 

Select gem to uninstall: 
1. railties-4.0.0.rc1 
2. railties-3.2.13 
3. All versions 
> 2 

You have requested to uninstall the gem: 
    railties-3.2.13 

rails-3.2.13 depends on railties (= 3.2.13) 
If you remove this gem, these dependencies will not be met. 
Y # uninstall railties-3.2.13 

仍然得到錯誤

$ gem uninstall rails # to uninstall rails-3.2.13 
$ gem uninstall railties # to also uninstall railties-4.0.0.rc1 
$ rvm reinstall 2.0.0 
$ rvm 2.0.0 --default 
$ bundle update # using the Gemfile with ruby 2, rails 4 
$ bundle install 

$ gem list | grep rail 
coffee-rails (4.0.0) 
jquery-rails (2.2.1) 
rails (4.0.0.rc1) 
railties (4.0.0.rc1) 
rspec-rails (2.13.1) 
sass-rails (4.0.0.rc1) 
sprockets-rails (2.0.0.rc4) 

仍然得到錯誤

通過原來的設置從教程一章再回到(現在更新爲紅寶石2,導軌4.)

$ rvm use [email protected]_rails_4_0 --create --default 
$ gem update --system 2.0.0 
$ gem install rails --version 4.0.0.rc1 --no-ri --no-rdoc 
$ bundle update # using Gemfile with ruby 2, rails 4 
$ bundle install 

仍然出現錯誤

ug !!!

任何想法?

回答

65

ActiveResource是Rails 2.x中添加的一個API,用於支持XML(及更高版本的JSON)API,以便Rails站點可以相互「交談」。當RESTful API的概念進入框架時,這是一個非常熱門的話題。隨着時間的推移,它變得更加新奇,並且不經常維護,因此它在Rails 4.x中脫離了核心。

在Rails 4.x中有兩個選項。如果你不打算使用的ActiveResource(我認爲是這樣的話,如果你是新來的Rails和工作的一個教程),那麼你可以簡單地刪除或註釋掉在捉弄入框架railtie。打開'config/application.rb'並註釋掉第七行。

require File.expand_path('../boot', __FILE__) 

# Pick the frameworks you want: 
require "active_record/railtie" 
require "action_controller/railtie" 
require "action_mailer/railtie" 
# require "active_resource/railtie" <--- comment out this line 

如果你想使用的ActiveResource,然後只需將其添加到Gemfile中的項目。以前它被rails rails包含爲依賴;現在如果你想使用它,你必須明確地添加它。

+6

涼,只需添加寶石 '的ActiveResource' 中的Gemfile –

+0

哇,謝謝。我有一個類似的問題,但它是activejob: '寶石「activejob」,「4.2.0''加入Gemfile中解決它? –

0

我有相同的錯誤的單獨的寶石。 我做了什麼是: 在Gemfile中我改變了軌道的版本:gem 'rails', '4.2.0' 然後在命令行中執行以下命令:bundle install。 要查看提供給我們的發電機上的CLI鍵入rails grails generate

相關問題