Ruby on Rails является плюрализацией

Возможно, необходимо смотреть на IzPack. Я создал очень хороший установщик несколько лет назад, и я держал пари, что они все еще улучшают его. Это позволяет установке документов, двоичных файлов и активируемой по щелчку ссылки запускать приложение IIRC .

15
задан Ryan Bigg 6 November 2009 в 10:42
поделиться

3 ответа

Возможно, вы могли бы использовать множественное число и добавить перегиб для 'is'

Inflector.inflections do |inflection|
  inflection.irregular "is", "are"
end

, чтобы

'is'.pluralize # => 'are'

(я не тестировал решение, но оно должно работать)

2
ответ дан 1 December 2019 в 03:14
поделиться

Другой вариант - использовать библиотеку перевода i18n, входящую в комплект поставки rails.

Это позволяет определять слово или предложение (с интерполяцией) как в единственном, так и во множественном числе.

Хотя это может показаться слишком сложным, я настоятельно рекомендую использовать i18n для каждого проекта с самого начала, поскольку это не только логическое место для ошибок активной записи, но и делает ваше приложение готовым к развертыванию на другом языке довольно легко.

Он также предоставляет множество дополнительных дополнений и преимуществ с локализацией даты и времени. Прочтите об i18n наизнанку здесь

1
ответ дан 1 December 2019 в 03:14
поделиться

Как сказано в t6d , вам нужно добавить is / are в инфлектор Rails. Просто код из td6, но вам нужно добавить пространство имен ActiveSupport:

ActiveSupport::Inflector.inflections do |inflection|
  inflection.irregular "is", "are"
end

Теперь встроенный помощник Rails имеет множественное число, но в представлении, которое не будет делать то, что вы хотите. Например:

pluralize(@leads.length,'is')

output (для 2 отведений)

2 are

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

def pluralize_no_count(count, singular, plural = nil)
  ((count == 1 || count == '1') ? singular : (plural || singular.pluralize))
end
18
ответ дан 1 December 2019 в 03:14
поделиться
Другие вопросы по тегам:

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