Отображение рядом с "total_entries" в Rails - PullRequest
1 голос
/ 12 апреля 2011

Использование RoR 2.3.8

Обычно у нас есть следующий код:

Showing <%= @shops.total_entries %> shops in Canada.

дает результат:

Showing 46 shops in Canada

Что если я хочу показать округленное значение:

Showing 40+ shops in Canada

Принимая во внимание, что для <10 всего записей должно отображаться точное число. </p>

Thankyou.

1 Ответ

2 голосов
/ 12 апреля 2011
def round(total)
  total > 10 && total%10 != 0 ? [total/10*10,"+"].join : total.to_s
end

Showing <%= round(@shops.total_entries) %> shops in Canada.

и, конечно, было бы лучше обернуть его как метод модели

class Shop < ActiveRecord::Base
  def self.round
    total = count
    total > 10 && total%10 != 0 ? [total/10*10,"+"].join : total.to_s
    # instead of using `[total/10*10,"+"].join` you can use `(total/10*10).to_s+"+"`
  end
end

@shops = Shop.were(:region => "Canada")

Showing <%= @shops.round %> shops in Canada.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...