AdilA
@AdilA
Нравится кодить, изучаю go c echo

Как в rails отобразить возраст пользователя?

Запилил возраст юзерам, теперь не могу понять как добавить им в конце правильное склонение "лет" "года" "год"
User.rb
def age
    now = Time.now.utc.to_date
    now.year - birthday.year - (birthday.to_date.change(:year => now.year) > now ? 1 : 0)
  end

во вьюху вставляю
<%= @user.age %>
а что добавить то чтобы не просто отображалось число а было например 25 лет 32 года?
  • Вопрос задан
  • 2475 просмотров
Решения вопроса 1
anyd3v
@anyd3v
в Rails есть хелпер для этого, но он не умеет правильно работать с русским. Смотрите в сторону https://github.com/yaroslav/russian/
там есть пример
Russian::pluralize
Russian::p

Russian.p(1, "вещь", "вещи", "вещей")
=> "вещь"
Russian.p(2, "вещь", "вещи", "вещей")
=> "вещи"
Russian.p(10, "вещь", "вещи", "вещей")
=> "вещей"
Russian.p(3.14, "вещь", "вещи", "вещей", "вещи") # последний вариант используется для дробных величин
=> "вещи"

в вашем случае будет что то типа <%= @user.age Russian.p(@user.age, "..", "...", "...")%>
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@fuCtor
Ruby разработчик
Лучше использовать локаль и соответствующее API:
rusrails.ru/rails-internationalization-i18n-api
Ваш случай раздел 4.3
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы