2012-09-08 7 views
17

Mam atrybut datetime na płycie:Dlaczego pomoce date nie działają w konsoli Rails?

1.9.3p194 :024> f.last_contact 
=> Thu, 11 Aug 2011 00:00:00 UTC +00:00 

ale gdy próbuję time_ago_in_words na konsoli, to nie działa:

> time_ago_in_words(f.last_contact) 
NoMethodError: undefined method `time_ago_in_words' for main:Object 

Próbowałem też distance_of_time_in_words który docs powiedzieć powinny działać z Time, Date & DateTime objects.

> to_time = Time.now 
=> 2012-09-08 12:22:16 -0500 
> distance_of_time_in_words(f.last_contact, to_time) 
NoMethodError: undefined method `distance_of_time_in_words' for main:Object 

Jaka jest tego przyczyna? Czy Rails Console nie powinien ładować wszystkich niezbędnych bibliotek i zależności, aby wszystkie metody Railsowe działały?

Odpowiedz

54

Można korzystać ze wszystkich pomocników (wbudowany i własne) przez helper obiektu

helper.time_ago_in_words(1.hour.ago) 
=> "about 1 hour" 

lub zaimportować wymagane pomocników

include ActionView::Helpers::DateHelper 
time_ago_in_words(1.hour.ago) 
=> "about 1 hour" 
+0

Idealny! Dzięki. – marcamillion

+0

milion + 1-ki – thedanotto

5

Spróbuj

helper.time_ago_in_words(...) 
helper.distance_of_time_in_words(...) 

Wywołanie helper. wydaje się dać Ci dostęp do dowolnego/wszystkich zdefiniowanych pomocników.

Więcej informacji w tej odpowiedzi: How do I call controller/view methods from the console in Rails?

Powodem, myślę, że nie można po prostu zadzwonić pomocnik jest bezpośrednio, ponieważ nie są one w zakresie od gdzie jesteś (w konsoli), a w przeciwieństwie do kodu działającego w widoku, w którym znajdują się pomocnicy.

+0

'helper' pracował. Dzięki! – marcamillion

Powiązane problemy