2017-01-31 1 views
0

Ich folge mit" Ruby on Rails Tutorial 3rd Edition "von Michael Hartl. Ich bin in Kapitel 3, beim ersten Versuch, den Testbefehl zu verwenden."bundle exec rake test" "NoMethodError: undefinierte Methode` web_console 'für ActiveRecord :: Base: Class "

Es gibt zwei extrem einfache Seiten - Startseite und Hilfe - mit nur Text auf ihnen. Ich denke, die folgenden Tests sollen prüfen, ob die Seiten vorhanden sind:

---------- Sample_app/test/controllers/static-pages.rb ----------- ----------

require 'test_helper' 
class StaticPagesControllerTest < ActionController::TestCase 
    test "should get home" do 
    get :home 
    assert_response :success 
end 

test "should get help" do 
    get :help 
    assert_response :success 
end 
end 

Allerdings, wenn ich den Befehl

$ bundle exec test rake 

im Terminalfenster ausführen, erhalte ich einen langen Fehler, der mit

beginnt
rake aborted! 
NoMethodError: undefined method `web_console' for ActiveRecord::Base:Class 

Ich habe eine Vielzahl von Vorschlägen gelesen, die sich um Edelstein-Dateien zu drehen scheinen, insbesondere die für "Web-Konsole". Ich habe versucht, den Edelstein ein bisschen umsonst zu bewegen, aber ich bin bereit, alles noch einmal zu versuchen. Hier ist die aktuelle Edelstein-Datei:

---- sample_app/Gemfile (Kommentare entfernt) --------------

source 'https://rubygems.org' 


gem 'rails', '4.2.2' 

gem 'sqlite3' 

gem 'sass-rails', '~> 5.0' 

gem 'uglifier', '>= 1.3.0' 

gem 'coffee-rails', '~> 4.1.0' 

gem 'jquery-rails' 

gem 'turbolinks' 

gem 'jbuilder', '~> 2.0' 

gem 'sdoc', '~> 0.4.0', group: :doc 


gem 'web-console', group: :development 

group :development do 

    gem 'sqlite3' 

    gem 'byebug' 

    gem 'spring' 

    gem 'guard' 

    gem 'guard-minitest' 
end 


group :test do 

    gem 'minitest-reporters' 

    gem 'mini_backtrace' 



end 

Vielen Dank für Ihre Hilfe.

Hier ist der gesamte Fehlercode, wenn Sie interessiert sind:

Running via Spring preloader in process 6353 
rake aborted! 
NoMethodError: undefined method `web_console' for ActiveRecord::Base:Class 
/usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-4.2.2/lib/active_record/dynamic_matchers.rb:26:in `method_missing' 
/home/ubuntu/workspace/sample_app/test/controllers/static_pages_controller_test.rb:16:in `<class:StaticPagesControllerTest>' 
/home/ubuntu/workspace/sample_app/test/controllers/static_pages_controller_test.rb:5:in `<top (required)>' 
/usr/local/rvm/gems/ruby-2.3.0/gems/railties-4.2.2/lib/rails/test_unit/sub_test_task.rb:114:in `require' 
/usr/local/rvm/gems/ruby-2.3.0/gems/railties-4.2.2/lib/rails/test_unit/sub_test_task.rb:114:in `block (3 levels) in define' 
/usr/local/rvm/gems/ruby-2.3.0/gems/railties-4.2.2/lib/rails/test_unit/sub_test_task.rb:114:in `each' 
/usr/local/rvm/gems/ruby-2.3.0/gems/railties-4.2.2/lib/rails/test_unit/sub_test_task.rb:114:in `block (2 levels) in define' 
/usr/local/rvm/gems/ruby-2.3.0/gems/railties-4.2.2/lib/rails/test_unit/sub_test_task.rb:113:in `each' 
/usr/local/rvm/gems/ruby-2.3.0/gems/railties-4.2.2/lib/rails/test_unit/sub_test_task.rb:113:in `block in define' 
/usr/local/rvm/gems/ruby-2.3.0/gems/railties-4.2.2/lib/rails/test_unit/sub_test_task.rb:20:in `invoke_rake_task' 
/usr/local/rvm/gems/ruby-2.3.0/gems/railties-4.2.2/lib/rails/test_unit/testing.rake:8:in `block in <top (required)>' 
/usr/local/rvm/gems/ruby-2.3.0/gems/rake-12.0.0/exe/rake:27:in `<top (required)>' 
/usr/local/rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `eval' 
/usr/local/rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `<main>' 
Tasks: TOP => test:run 
(See full trace by running task with --trace) 
+0

'bundle exec test rake' - sollte das stattdessen" bundle exec rake test "sein? –

+0

Falls Sie nicht wissen, dass Sie eine ältere Version dieses Tutorials verwenden. –

+1

@Taryn East, danke. Ja, das ist ein Tippfehler bei meiner Frage, aber ich habe es korrekt in das Terminal eingegeben. – Siggytron

Antwort

0

ich eine Antwort gefunden haben: Abmelden Cloud9. Computer ausschalten. Starte den Computer neu. Melden Sie sich wieder in Cloud9 an. Geben Sie "bundle exec rake test" ein. Und es ist behoben. Zauber!

Zu einer ernsteren Anmerkung, ich merke, dass ich eine ältere Version des Tutorials verwende, aber das Tutorial richtet den Schüler an die Umgebung so einzurichten, dass diese Edition passt (glaube ich). Trotzdem habe ich irgendwann eine Warnung von Cloud9 gesehen, dass die von mir verwendete Version von Ruby (2.3.0) "fehlerhaft" war und auf 2.3.1 aktualisiert wurde. Ich weiß nicht, ob der Buggy von Ruby 2.3.0 in Cloud9 der Übeltäter oder vielleicht Buggy war, aber es ist etwas, dessen man sich bewusst sein sollte, wenn jemand eine ältere Version des Tutorials benutzt.

Verwandte Themen