42

OS to Ubuntu 12.04, 64-bitowy.nie można załadować toru po aktualizacji do szyn 4 na ruby.railstutorial.org

Nowość na szynach. Stosunkowo nowy w Ruby. Po zapoznaniu się z samouczkiem ruby.railstutorial.org, rozdział 3.

Samouczek został zaktualizowany, aby używać Ruby 2.0.0 i Rails 4.0.0.rc1. Wcześniej gemfile określał Rails 3.2.13 i nie określał wersji Ruby. Po przejściu do najnowszego Gemfile w tutorialu, ruby ​​2.0.0 i Rails 4.0.0.rc1, pojawia się następujący błąd podczas uruchamiania poleceń rails. Przykładem tutaj jest szyny serwer

[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>' 

Zrobiłem trochę pomysłów z Rails: Could not find railties, opisanych poniżej, ale jeszcze nie znalazłem poprawkę.

Oto szczegóły.

Wczoraj (w mojej przeglądarce) Gemfile do rozdziału 3 wyglądał następująco. Wszystko działało dobrze.

$ 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 

Dziś rano Gemfile w samouczku używają ruby ​​2.0.0 i szyn 4.0.0.rc1. Chciałbym, aby ta konfiguracja działała, więc nie mam konfliktów ze zaktualizowanym samouczkiem. Nowa Gemfile jest następująca.

$ 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 

Najpierw zmienił wersję rubinowy w Gemfile do Ruby „1.9.2”, ponieważ to właśnie został uruchomiony, a że miałem błąd z aktualizacją pakietu. Nie robiłem notatek.

Potem zmienił wersję rubinowy z powrotem do „2.0.0” w Gemfile oraz:

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

Teraz jestem uzyskiwanie nie może załadować railtie błąd z poleceniami szynach.

Od Rails: Could not find railties, próbowałem następujące

$ 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 

wciąż otrzymuję błąd

$ 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) 

wciąż otrzymuję błąd

Wracając dzięki oryginalnej konfiguracji z samouczka w rozdziale pierwszym (teraz zaktualizowany dla ruby ​​2, tory 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 

nadal otrzymuję błąd

ug !!!

Wszelkie pomysły?

Odpowiedz

65

ActiveResource to interfejs API dodany w Railsach 2.x do obsługi API XML (i późniejszego JSON), dzięki czemu witryny Railsowe mogą "rozmawiać" ze sobą. Był to bardzo gorący temat, gdy pomysł RESTful API wszedł w ramy. Z biegiem czasu stało się ono bardziej nowością i rzadko utrzymywane, więc zostało wyciągnięte z rdzenia w Rails 4.x.

Masz dwie opcje w Railsach 4.x.Jeśli nie masz zamiaru korzystać z ActiveResource (zakładam, że tak jest, jeśli jesteś nowy w Railsach i pracujesz nad samouczkiem), możesz po prostu usunąć lub zakomentować railtie, który wciąga go do frameworka. Otwórz "config/application.rb" i skomentuj siódmą linię.

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 

Jeśli chcesz używać ActiveResource, po prostu dodaj go do Gemfile dla projektu. Poprzednio był zawarty w klejnocie rails jako zależność; teraz musisz dodać go jawnie, jeśli chcesz go użyć.

+6

fajne, po prostu dodaj gem 'activeresource' w Gemfile –

+0

Whoa, Thanks. Miałem podobny problem, z wyjątkiem tego, że był aktywny: "Gem" aktywna "," 4.2.0 "dodana do gemfile rozwiązała ... –

0

Miałem ten sam błąd. co zrobiłem: w Gemfile Zmieniłem wersję szyn: gem 'rails', '4.2.0' Następnie w wierszu poleceń wykonano to polecenie: bundle install. Aby zobaczyć, jakie generatory są dostępne, wpisz rails g lub rails generate w CLI.

Powiązane problemy