Mam zainstalowany Active Support 3.0.3 i Rails 3.0.3 z Ruby 1.8.7.
Kiedy próbuję użyć 1.week.ago
, otrzymuję
NoMethodError: undefined method 'week' for 1:Fixnum
from (irb):2
Wydaje się, że inne podstawowe rozszerzenia działają. Wypróbowałem to na komputerze znajomego (te same specyfikacje instalacji i starsze wersje są na jego) z tymi samymi wynikami.
Co daje?
Wszystko to jest w IRB.
ruby-on-rails
ruby
time
extension-methods
activesupport
griotspeak
źródło
źródło
Odpowiedzi:
Ponieważ używanie Railsów powinno obsługiwać to automatycznie, zakładam, że próbujesz dodać Active Support do skryptu innego niż Rails.
Przeczytaj „ Jak wczytać rozszerzenia podstawowe ”.
Metody Active Support zostały podzielone na mniejsze grupy w Railsach 3, więc nie kończymy na ładowaniu wielu niepotrzebnych rzeczy za pomocą prostego
require 'activesupport'
. Teraz musimy zrobić takie rzeczyJeśli nie zależy Ci na szczegółowości, możesz załadować większe fragmenty. Jeśli chcesz wszystko jednym dużym haustem, użyj ...
Dla 1.9.2:
Dla 1.8.7:
źródło
irbtools
. Zawiera różnego rodzaju fajne poprawki do IRB. A jeśli chcesz je tymczasowo wyłączyć, zadzwońirb -f
i nie załaduje ich.Możesz szczegółowo dodawać biblioteki za pośrednictwem wspomnianego już
Jest też inny poziom, na którym możesz
Ale w tej chwili, to nie jest niestety dostępna
Time
,Date
iDateTime
.Sposobem na to jest
require 'active_support/time'
co da wamTime
,Date
iDateTime
który rozwiązałby OP prosi o nie wymagając wszystko.My Rails patch , który dodaje
active_support/core_ext/date
idate_time
, wprowadził go do Rails v4.0.0 , więc teraz możesz wymagać ich osobno. YAY!źródło
W moim przypadku działał następujący link:
https://bundler.io/blog/2019/01/04/an-update-on-the-bundler-2-release.html
źródło
Czy to działa z konsoli? To działa dla mnie:
źródło
Możesz:
wymagać „active_support / core_ext”
lub:
wymagać „active_support / all”
źródło