Ruby ob Rails имеет специальный класс Inflector, который предназначен для автоматического изменения правописания слов в контексте их применения. Речь идет, к примеру, об изменении названия класса, скажем City, для именования таблицы в базе во множественном числе - cities. В большинстве случаев этот класс работает потрясающе грамотно, зная много правильных вариантов приведения, как то person => people, но в некоторых ситуациях может давать сбой, в частности при использовании в названиях неанглийских слов (латинских, немецких, русские названия, написанные транслитом). В любом случае, если есть подозрение на то, что выбранное вами для модели название может быть неправильно переведено рельсами во множественное число - всегда можно сначать проверить работу класса Inflector при помощи консоли:
ActiveSupport::Inflector.pluralize "virus"
или еще проще (так как Inflector можно использовать сразу же с любыми строками):
"virus".pluralize
Кстати, результатом предыдущих операций будет множественное число от virus, а это слово viri. Что есть грамматически правильный перевод, но все же более распространненый в быту вариант есть viruses.
Так вот - если класс Inflection работает по любой причине не так, как вы хотите - открываем файл config/initializers/inflections.rb, раскомментируте шаблон, который вы там увидите и внесите свои правки:
ActiveSupport::Inflector.inflections do |inflect|
# inflect.plural /^(ox)$/i, '\1en'
# inflect.singular /^(ox)en/i, '\1'
# inflect.irregular 'person', 'people'
# inflect.uncountable %25w( fish sheep )
inflect.irregular 'virus', 'viruses'
end
И главное - обязательно нужно будет перезапустить сервер или консоль после внесения изменений в данный файл!