Подтвердить что ты не робот

Не может загрузить railtie после обновления до рельсов 4 за ruby.railstutorial.org

OS - Ubuntu 12.04, 64 бит.

Новые для рельсов. Относительно новый для 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. Например, сервер 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: Не удалось найти railties, описанный ниже, но еще не нашел исправления.

Здесь подробности.

Вчера (в моем браузере) Gemfile для главы 3 был следующим. Все работало нормально.

$ 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 на ruby ​​ "1.9.2", потому что это то, что я запускал, и думаю, что у меня была ошибка с обновлением пакета. Я не делал заметки.

Затем изменилась версия ruby ​​на "2.0.0" в Gemfile и:

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

Теперь я получаю, что не могу загрузить ошибку railtie с помощью команд rails.

Из Rails: не удалось найти 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)

все еще получает ошибку

Возвращаясь к исходной настройке из учебника главы 1 (теперь обновлено для ruby ​​2, rails 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!!!

Любые идеи?

4b9b3361

Ответ 1

ActiveResource - это API, добавленный в Rails 2.x для поддержки API XML (и более позднего JSON), чтобы сайты Rails могли "разговаривать" друг с другом. Это была очень горячая тема, когда идея API RESTful пробилась в рамки. Со временем он стал более новинкой и редко поддерживался, поэтому он был извлечен из ядра в 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 для проекта. Раньше он был включен жемчужиной рельсов в качестве зависимости; теперь вам нужно будет добавить его явно, если вы хотите его использовать.

Ответ 2

'activeresource' доступен как отдельный камень из Rails 4

Ответ 3

У меня была такая же ошибка. что я сделал: в Gemfile я изменил версию рельсов: gem 'rails', '4.2.0' Затем в командной строке выполните следующую команду: bundle install. Чтобы узнать, какие генераторы доступны для нас, введите rails g или rails generate в CLI.