Нестандартный плюрализм в 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