2010-09-27 12 views

Odpowiedz

56

Możesz to zmienić poprzez plik ustawień narodowych I18n. W config/locales/en.yml ...

"en": 
    datetime: 
    distance_in_words: 
     about_x_hours: 
     # The defaults are "about 1 hour" and "about %{count} hours" 
     one: "1 hour" 
     other: "%{count} hours" 

Zobacz default locale file in actionpack dla pełnego odniesienia.

+0

W rzeczywistości dałoby to nieprawidłowy wynik. Na przykład 'helper.distance_distance_of_time_in_words (1.hour + 29.minutes)' z tym rozwiązaniem wypisze "1 hour", a jeśli dodasz jedną minutę, wyświetli "2 godziny". Dlatego początkowo nazywa się "około 1 godziny" i "około 2 godziny". Używa przedziałów czasu w oparciu o zaokrąglanie w górę iw dół, aby określić, jaka jest najbliższa pełna godzina lub podobny. Sugeruję użycie klejnotu dotiw zamiast dokładnych czasów. https://github.com/radar/dotiw – Magne

+0

dziękuję, że uratowałeś mój dzień – Deepak

6

Możesz użyć mojej klejnot/plugin dotiw. Dodaje kilka dodatkowych opcji i ma większą precyzję niż te, które oferuje Rails.

distance_of_time_in_words(time1, time2, :only => [:days, :hours, :minutes]) 
+0

thxs, ale podoba mi się brak precyzja dla aplikacji, którą buduję. Chodzi raczej o usunięcie słowa "o" ma sens? – AnApprentice

+0

@TheApprentice, dobrze w takim przypadku użyj opcji ': vague' w dotiw. –

+0

@AnApprentice: Powinna to być zaakceptowana odpowiedź, ponieważ odpowiedź Dave'a da w rzeczywistości błędne/niezamierzone wyjście. – Magne

12

miałem ten sam problem, skończyło się to robi, głównie dlatego, że jestem jeszcze w powietrzu, czy też nie, aby usunąć około globalnie -

<p class="entry_created_at"><%= time_ago_in_words(plate.created_at).gsub('about','') + ' ago' %></p>