distance_of_time_in_words, а затем удалите слово «о» - PullRequest
6 голосов
/ 08 марта 2012

У меня есть этот код:

    = distance_of_time_in_words(Time.now, real_time + 0.seconds, true)

, который генерирует также как:

about 15 hours
less than

Есть ли способ удалить слово "About" из результатов? Уже много раз искал, но не могу найти никакой информации, сама по себе функция великолепна, она отбрасывает часы, минуты, секунды и т. Д., Так здорово, но самое худшее «о» должно уйти!Кто-нибудь знает как?ТНХ!

Ответы [ 2 ]

15 голосов
/ 28 августа 2013

Поскольку distance_of_time_in_words использует ключи локализации, вы можете просто переопределить их, чтобы достичь того, что вы хотите, безопасным способом I18n:

конфиг / локали / en.yml:

en:
  # Used in distance_of_time_in_words(), distance_of_time_in_words_to_now(), time_ago_in_words()
  datetime:
    distance_in_words:
      half_a_minute: "half a minute"
      less_than_x_seconds:
        one:   "1 second" # default was: "less than 1 second"
        other: "%{count} seconds" # default was: "less than %{count} seconds"
      x_seconds:
        one:   "1 second"
        other: "%{count} seconds"
      less_than_x_minutes:
        one:   "a minute" # default was: "less than a minute"
        other: "%{count} minutes" # default was: "less than %{count} minutes"
      x_minutes:
        one:   "1 minute"
        other: "%{count} minutes"
      about_x_hours:
        one:   "1 hour" # default was: "about 1 hour"
        other: "%{count} hours" # default was: "about %{count} hours"
      x_days:
        one:   "1 day"
        other: "%{count} days"
      about_x_months:
        one:   "1 month" # default was: "about 1 month"
        other: "%{count} months" # default was: "about %{count} months"
      x_months:
        one:   "1 month"
        other: "%{count} months"
      about_x_years:
        one:   "1 year" # default was: "about 1 year"
        other: "%{count} years" # default was: "about %{count} years"
      over_x_years:
        one:   "1 year" # default was: "over 1 year"
        other: "%{count} years" # default was: "over %{count} years"
      almost_x_years:
        one:   "1 year" # default was: "almost 1 year"
        other: "%{count} years" # default was: "almost %{count} years"
10 голосов
/ 08 марта 2012

distance_of_time_in_words(Time.now, real_time + 0.seconds, true).gsub('about ','')

посмотрите здесь для получения дополнительной информации

попробуйте помощника (поместите этот код в app / helpers / application_helper.rb)

def remove_unwanted_words string
  bad_words = ["less than", "about"]

  bad_words.each do |bad|
    string.gsub!(bad + " ", '')
  end

  return string
end

в плохих словах вы можете определить строки, которые вы хотите удалить из этой строки.пользователь это так:

<%= remove_unwanted_words distance_of_time_in_words(Time.now, real_time + 0.seconds, true) %>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...