Błąd uruchamiania serwera Rails: niezdefiniowana metoda 'configure'

W railsach jestem nowy i pracuję nad tutorialem Hartla . Wszystko było w porządku, dopóki nie spróbowałem zrobić samouczka po raz drugi i nie stworzyłem kolejnego projektu próbującego użyć najnowszej wersji rails. Podczas próby załadowania rails server z folderu aplikacji pojawia się następujący błąd.

$ rails s
=> Booting WEBrick
=> Rails 4.0.4 application starting in development on
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
Exiting
/Users/sierra/Desktop/sample_app_2/config/environments/development.rb:1:in
  `<top (required)>': undefined method `configure' for
  #<SampleApp2::Application:0x00000101a74610> (NoMethodError)
Mój Gemfile pochodzi bezpośrednio z tutoriala Hartla:
source 'https://rubygems.org'
ruby '2.1.0'
#ruby-gemset=railstutorial_rails_4_0

gem 'rails', '4.0.4'

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 'rails_12factor', '0.0.2'
end
Author: Marc K, 2014-04-10

5 answers

Rozwiązałem to, wykonując następujący krok.

Krok 1: Przejdź do Project_Root_Directory / config/environment / development.rb

Zmień tę linię

Rails.application.configure do

Do

Your_Rails_Application_Folder_name::Application.configure do

Na przykład moja nazwa folderu projektu rails to 'Spree_demo', więc Your_Rails_Application_Folder_name w następującej linii:

Your_Rails_Application_Folder_name::Application.configure do

Zostanie zastąpione

SpreeDemo::Application.configure do

Uwaga: Zobacz podkreślenie w nazwie folderu aplikacji, który zostanie usunięty.

Mam nadzieję, że to działa dla Ciebie chłopaki.

 58
Author: Muhammad Ateq Ejaz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-05 02:21:39

Najpierw ustaw wersję Ruby przed rails new

Miałem ten sam problem i próbowałem odpowiedzi udzielonej i to nie miało wpływu. Próbowałem nawet zmienić nazwę, aby pozbyć się podkreślenia, i to nie miało wpływu.

Problem w tym, że zrobiłeś to:

$ rails new app_name

Ale twoja wersja ruby była prawdopodobnie 2.1.1 lub czymś innym. Chcesz zrobić:

$ rvm 2.0.0

Przed uruchomieniem nowej aplikacji, a następnie po ustawieniu 2.0.0 w Gemfile (jak zaleca Hartl) spada na miejsce.

Nie wiem, dlaczego to działa i mam nadzieję, że ktoś rzuci na to światło, ale mogę powiedzieć, że to działało lepiej niż odpowiedź, która jest obecnie w czołówce.

 7
Author: Omar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-29 20:09:51

Mnie też się to przydarzyło. Problem polegał na tym, że do stworzenia projektu użyłem jednej wersji Rails. Następnie zmieniłem Gemfile na inną wersję Rails i system używał go do rusztowania lub uruchamiania serwera. Nowy problem! Konsekwentne używanie tej samej wersji powinno rozwiązać problem. :-)

 5
Author: Debora Aline,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-14 22:23:27

Zamieściłem (prawdopodobnie zbyt długą) odpowiedź na podobne pytanie: rails-NoMethodError: undefined metoda `configure' dla FirstApp. Ten wątek rzeczywiście rozpoczął mnie w drodze do mojego ostatecznego rozwiązania, więc pomyślałem, że będę pisać tutaj, jak również na wypadek, gdyby to było pomocne dla kogokolwiek innego.

Z tego, co wiem, problem występuje, gdy app / config/initializers / development.rb (i produkcja.RB) pliki są generowane dla nowego projektu przy użyciu nowszych wersji Rails (Nie jestem pewien, w której wersji się zaczęło, testowałem tylko Rails 4.1.4). Pan Hartl używa Rails 4.0.8 do swojego tutoriala i to jest najwyższa wersja, którą testowałem, w której nowa składnia nie występuje.

W Rails 4.1.4 i być może w innych wersjach po 4.0.8, pierwsza linia w tych plikach jest generowana jako Rails.application.configure.do, a nie, używając projektu o nazwie sample_app jako przykład, SampleApp::Application.configure.do jak w 4.0.8.

Jestem nowy w Rails więc nie wiem dlaczego ta składnia zmieniła się w nowszych wersjach. Zakładam, że to celowe i jakoś lepsze niż w starym stylu. Najprawdopodobniej Pan Hartl weźmie to pod uwagę w przyszłych edycjach swojego samouczka, które są aktualizowane dla wersji Rails, które zawierają tę zmianę.

Do tego czasu, zobacz moją drugą odpowiedź w pytanie, o którym wspomniałem powyżej dla dokładniejszego wyjaśnienia, jak obejść go w Windows 7, ale tl; dr to:

Upewnij się, że używasz wersji rails określonej dla tutoriala (4.0.8) w Twoim local repository / root development directory przed tworzysz swój nowy projekt. Aktualizacja pliku Gemfile po utworzeniu projektu jest nadal ważna, ale nie rozwiąże tego problemu, jeśli same pliki zostały wygenerowane z nowszą wersją Rails. W takim przypadku będziesz musiał wejść i edytować tę linię ręcznie, zgodnie z sugestiami innych użytkowników.

 3
Author: user3894023,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:01:58

Miałem ten problem, gdy grzebałem w moim Gemfile. Na przykład stworzyłem aplikację za pomocą rails 4.0.2 lub coś w tym stylu, a następnie z powodu pewnych błędów zmieniłem ją na 4.1.1, które zmiany powodują dokładnie ten sam problem zarówno w rozwoju, jak i produkcji

 1
Author: pirate694,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-17 20:57:05