10K, 20M, 21V слава и т.д ... в Ruby on Rails - PullRequest
1 голос
/ 19 июня 2010

Я создаю сайт с фрагментами, где люди могут оценивать фрагменты, как голоса на SO. В настоящее время, когда фрагмент содержит более 999 баллов, он выглядит так: кружка http://picocool.com/images/uploads/img_1705.jpg

Итак, я хочу сделать 1K, 1M и т. Д. ... как на SO:

-----
|999|
-----

**user does +1**
-----
|1K |
-----

**one million kudos**
-----
|1M |
-----

То же самое касается миллиардов, триллионов, квадриллионов, квинтиллионов и т. Д ...: 'D

Есть ли у Руби методы для этого, и если нет, то как я могу написать их сам? Спасибо.

Ответы [ 3 ]

1 голос
/ 20 июня 2010

Похоже, это было реализовано. Я предлагаю вам взглянуть на этот патч:

https://rails.lighthouseapp.com/projects/8994/tickets/4239-patch-improvements-in-number_helperrb

1 голос
/ 19 июня 2010

Не думаю, что у Руби есть что-то подобное. В Rails есть набор числовых помощников , но он не включает эту особенность. Однако, если вы просматриваете источник для «числа к размеру человека», вы сможете без проблем свернуть свой собственный.

0 голосов
/ 20 июня 2010

Возможным решением является создание вспомогательного приложения для всего приложения (application_helper.rb внутри app / helpers).Вы можете расширить это, используя вложенные if, но я думаю, вы поняли идею.Я не говорю, что это способ сделать это, но это лучше, чем что-то работает, чем вообще ничего.

def kudoify(kudos)

if kudos > 1000 && kudos < 1000000 then 
mykudos_prefix = (kudos / 1000 )
mykudos_suffix = (kudos % 1000 )
mykudos = mykudos_prefix.to_s + "K" + mykudos_suffix.to_s
end

return mykudos
end
...