Я очень серьезно отношусь к именованию, поэтому считаю, что довольно неплохо отношусь к хорошим именам для своих моделей ActiveRecord. Тем не менее, я часто придумываю имя и конфликтует с зарезервированным именем либо в базе данных, либо в Ruby или Rails. Имена моделей или полей, например set
или group
. Иногда проблема не сразу очевидна. Есть ли список имен, которые мы не можем использовать в наших именах моделей и список имен полей?
Зарезервированные имена с помощью моделей ActiveRecord
Ответ 1
Вот несколько ресурсов, чтобы вы начали:
-
Rails reserved слова. Это похоже на то, что оно довольно актуально, последнее обновление обновлено в феврале 2010 года. Оно даже выходит за рамки рельсов и перечисляет некоторые общие конфликты имен с SQL.dead - Зарезервированные слова в рельсах. Здесь живет приложение heroku, в котором есть таблица поиска зарезервированных рельсов. Контент на этом, похоже, управляется пользователями, поэтому любой, у кого есть аккаунт, может добавить новое слово.
Ответ 2
Имя столбца type
также зарезервировано и не отображается в списке MyModel.methods
!
The single-table inheritance mechanism failed to locate the subclass: 'f'. This error is raised because the column 'type' is reserved for storing the class in case of inheritance. Please rename this column if you didn't intend it to be used for storing the inheritance class or overwrite Project.inheritance_column to use another column for that information.
Есть ли у кого-нибудь опыт работы с такими именами, как category
, class
, transaction
, group
и т.д.? Все в виду, когда я категоризую данные в моем db....
Ответ 3
Откройте консоль рельсов и введите MyModel.methods
Все перечисленные методы - это зарезервированные слова.