Нестандартный плюрализм в Rails

Возможный дубликат:
Как переопределить соглашения о присвоении имен рельсам?

Когда вы генерируете новые модели в Rails, он автоматически множит имя таблицы. Тем не менее, это не всегда хорошо работает - особенно со словами, которые имеют нестандартные множественные числа.

Я создал модель под названием lens, Поскольку rails думала, что слово уже было множественным, оно не множило имя таблицы в файле миграции. Нет проблем - я просто отредактировал файл и изменил lens в lenses перед запуском миграции.

К сожалению, я получаю эту ошибку при попытке создать экземпляр класса Lens:

Could not find table 'lens'

Я предполагаю, что это потому, что Rails думает, что слово уже во множественном числе, поэтому он не пытается его во множественном числе при поиске таблицы в базе данных.

Так что мне делать? Должен ли я выйти из соглашения и просто позволить Rails вызвать таблицу lens вместо lenses, или есть способ настроить это правильно?

1 ответ

Решение

Вы должны иметь config/initializers/inflections.rb файл, где вы можете сделать что-то вроде.

ActiveSupport::Inflector.inflections do |inflect|
  inflect.plural 'lens', 'lenses'
end
Другие вопросы по тегам