Ruby on Rails i problemy z Rake:: DSL
Mam naprawdę frustrujący problem: Rake jest głupi.
Oto jak powstaje problem:
$ rails new test_app
$ rails generate scaffold new_scaffold field1:string field2:text
Oba działają dobrze, ale kiedy to zrobię,]}
$ rake db:migrate
Otrzymuję następujący błąd.
(in /home/mikhail/test_app)
rake aborted!
uninitialized constant Rake::DSL
/usr/lib/ruby/1.9.1/rake.rb:2482:in `const_missing'
/usr/lib/ruby/gems/1.9.1/gems/rake-0.9.0/lib/rake/tasklib.rb:8:in `<class:TaskLib>'
/usr/lib/ruby/gems/1.9.1/gems/rake-0.9.0/lib/rake/tasklib.rb:6:in `<module:Rake>'
/usr/lib/ruby/gems/1.9.1/gems/rake-0.9.0/lib/rake/tasklib.rb:3:in `<top (required)>'
/usr/lib/ruby/gems/1.9.1/gems/rake-0.9.0/lib/rake/rdoctask.rb:20:in `require'
/usr/lib/ruby/gems/1.9.1/gems/rake-0.9.0/lib/rake/rdoctask.rb:20:in `<top (required)>'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/tasks/documentation.rake:1:in `require'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/tasks/documentation.rake:1:in `<top (required)>'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/tasks.rb:15:in `load'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/tasks.rb:15:in `block in <top (required)>'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/tasks.rb:6:in `each'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/tasks.rb:6:in `<top (required)>'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/application.rb:214:in `require'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/application.rb:214:in `initialize_tasks'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/application.rb:139:in `load_tasks'
/usr/lib/ruby/gems/1.9.1/gems/railties-3.0.7/lib/rails/application.rb:77:in `method_missing'
/home/mikhail/test_app/Rakefile:7:in `<top (required)>'
/usr/lib/ruby/1.9.1/rake.rb:2373:in `load'
/usr/lib/ruby/1.9.1/rake.rb:2373:in `raw_load_rakefile'
/usr/lib/ruby/1.9.1/rake.rb:2007:in `block in load_rakefile'
/usr/lib/ruby/1.9.1/rake.rb:2058:in `standard_exception_handling'
/usr/lib/ruby/1.9.1/rake.rb:2006:in `load_rakefile'
/usr/lib/ruby/1.9.1/rake.rb:1991:in `run'
/usr/bin/rake:31:in `<main>'
Szukałem w Internecie podobnych / tych samych błędów i ludzie je mieli. Po prostu nikt nigdy nie rozwiązuje problemu!
Jak rozwiązać ten problem?19 answers
A tweet z DHH wcześniej. Grabie .9.0 łamie Szyny i kilka innych rzeczy, musisz:
gem "rake", "0.8.7"
W Twoim Gemfile.
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
2011-05-22 04:11:11
Zrobiłem kilka badań tuż po mojej poprzedniej odpowiedzi (przepraszam, muszę zrobić przed nią).
Wszystkie problemy są rozwiązywane z Rake gem 0.9.2.. Wykonałem te kroki:
- zainstalowałem
gem install rake -v=0.9.2
(miałem gem 0.9.1) - usunięto 0.9.1 z
gem uninstall rake -v=0.9.1
- updated with
bundle update
-
Następnie
db:migrate
pokazał Ostrzeżenie,WARNING: Global access to Rake DSL methods is deprecated. Please....
Został rozwiązany przez dodanie następującego pliku do pliku Rake.
module ::YourApplicationName class Application include Rake::DSL end end
I ommited the
module ::RakeFileUtils extend Rake::FileUtilsExtend
option sugested by @databyte.
Oznacza to, że Grabie Gem 0.9.2 działa dobrze!
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
2011-07-30 14:31:44
Przechodząc przez Rozdział 2 Railstutorial (demo_app) i napotkał ten problem. Próbowałem wszystkich innych odpowiedzi wymienionych tutaj, ale nie mogłem go uruchomić, dopóki nie zrobiłem tego: {]}
Umieść to w swoim Rakefile powyżej wymagaj 'rake':
require 'rake/dsl_definition'
Via Jak naprawić niezainicjalizowany stały problem Rake::DSL na Heroku?
Zarekomendowałem i wrzuciłem wszystkie pliki na Github i Heroku.
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 11:46:12
Wystarczyło użyć:
gem install rake
Miałem już wersję 0.9.2, po prostu potrzebowałem instalacji.
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
2011-07-04 23:14:00
Ponownie zainstaluj klejnot rake i topowinno działać dobrze:
gem uninstall rake -v=0.9.2
gem install rake -v=0.9.2
Jeśli nie, podaj wersję' 0.8.7 ' w pliku Gemfile.
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
2011-09-11 19:38:58
Jeśli nie używasz Bundlera:
sudo gem install rake -v 0.8.7
sudo gem uninstall rake
Następnie wybierz odinstalowanie 0.9.0.
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
2011-05-23 08:17:31
Jeśli tak jak ja utknąłeś na rake 0.8.7, a używasz Rails 3.2.x następnie railties dodaje wymóg dla Rake:: DSL
Aby to rozwiązać, na górze Rakefile powinieneś dodać:
module Rake
module DSL
end
end
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
2012-05-18 17:28:34
Rozwiązałem ten sam problem w następujących krokach:
W Gemfile:
gem 'rake', '0.9.2'
Następnie uruchom to na konsoli:
sudo bundle update rake
Następnie dodano następujące linie do Rakefile:
require 'rake/dsl_definition'
include Rake::DSL
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
2011-08-10 05:13:37
Rails 3.1.rc1 został zaktualizowany. Dla własnych plików RAKEFILE, możesz dodać to przed wywołaniem do load_tasks.
module ::YourApplicationName
class Application
include Rake::DSL
end
end
module ::RakeFileUtils
extend Rake::FileUtilsExt
end
Https://gist.github.com/4cd2bbe68f98f2f0249f
UPDATE: zauwazylem, ze juz tu odpowiedzialem: Undefined method 'task' using Rake 0.9.0
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:25:02
Miałem ten sam problem i musiałem użyć rake 0.8.7 gem zamiast 0.9.0.
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
2011-05-22 04:04:15
Jestem użytkownikiem Windows XP i miałem ten sam problem.
Wpisałem gem "rake", "0.8.7" do pliku gemfile, a następnie wpisałem następujące z okna poleceń.
bundle update rake
To naprawiło mój problem.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
2011-07-30 14:37:09
- przejdź do ścieżki projektu
- Typ
bundle install --path=vendor/bundle
- Typ
bundle exec rake db:migrate
Aby uruchomić typ serwera bundle exec rails s
. Użyj bundle exec i będziesz pewien, że używasz odpowiednich klejnotów (wymagana wersja) dla swojego projektu.
Polecam również dodanie vendor/bundle
do .gitignore
, Jeśli używasz git
i tworzysz alias dla bundle exec
. Jeśli używasz zsh
możesz zastosować to podejście
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
2012-02-15 14:11:20
To samo co Branstar powyżej - dzięki Branstar!
- OS: Windows Vista
- Poziom: zupełnie nowy w Ruby on Rails
- miałem już zainstalowany Ruby 1.9.2
Postępowałem zgodnie z instrukcjami w uruchamianie Rails 3 Na Windows.
Wszystko działało aż do części "rake db: migrate", która dała mi takie same wyniki jak oryginalny post.
Uciekłem:
gem install rake
Znowu uciekłem:
rake db:migrate
Potem udało mi się uruchomić Ruby on Rails serwer i miał wszystko na swoim miejscu.
Jeszcze raz dzięki Branstar : -)
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
2011-07-30 14:39:28
I feel for you (mikhailvs), it ' s really frustring. Od prawie jednego dnia szaleję. Nawet odinstalowałem Ruby i wszystkie jego zależne pliki i wyłączyłem mój komputer, ale nadal mam ten sam problem.
To, co dostałem z komunikatu o błędzie, to problem z Rake 0.9.2. Wygląda na to, że nie był w pełni zainstalowany. Więc musiałem ponownie zainstalować gem install rake -v=0.9.2
Nie byłem pewien, czy mam rake-v0.9. 1 zainstalowany. Aby upewnić się, że jestem bezpieczny, próbowałem usunąć starą wersję za pomocą gem uninstall rake -v=0.9.1
. Ale jest Wyświetlono mi komunikat o błędzie
ERROR: While executing gem ... (Gem::InstallError)
cannot uninstall, check `gem list -d rake`
OK, więc sprawdziłem wszystkie katalogi Rake na moim komputerze i okazało się, że mam tylko Rake 0.9.2.
Następnie, aby sprawdzić, czy wszystko poszło dobrze, przeniosłem się z rake db:migrate
. I zadziałało:)
Myślę, że nie miałem Rake 0.9.1, ponieważ wyczyściłem zainstalowany Ruby (rubyinstaller-1.9.2-p180 - na moim systemie Windows 7) i wszystkie perełki, jak również. W międzyczasie Rake 0.9.2 nie był w pełni zainstalowany.
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
2011-07-30 14:42:32
Odinstalowanie za pomocą "gem uninstall rake" działało u mnie, miałem zainstalowane 2 wersje, więc zrobiłem czystą reinstalację.
"rake db: create" , aby upewnić się, że baza danych istnieje a następnie "rake db: migrate", aby przypieczętować transakcję.
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
2011-09-25 22:50:51
Miałem ten sam problem używając Rake 0.9.2.2. Rozwiązałem ten problem używając bundle exec.
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
2012-07-04 14:53:07
Dla rails 2.3 edycja lib/tasks/rspec.rake
jak w tym commicie zadziałało dla mnie:
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
2013-01-24 05:58:24
Zainstaluj rake 0.8.7 i odinstaluj 0.9.2.2
$ gem install rake -v 0.8.7
$ gem uninstall rake -v 0.9.2.2
Teraz użyj
$ bundle exec rake db:migrate
Myślę, że to ci pomoże.
;)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
2013-02-25 09:04:03
Run
bundle exec rake db:migrate
U mnie działa.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-12-19 16:20:43