Ошибка при определении значений перечисления в Rails - PullRequest
1 голос
/ 11 февраля 2020
class Klass < ApplicationRecord

  enum dimension: { length: 'length', breadth: 'breadth' }
end

Я получаю следующую ошибку: -

ArgumentError: Вы попытались определить перечисление с именем "name" в модели "Klass", но это сгенерирует метод класса "length", который уже определен ActiveRecord :: Relation.

Я просто хочу узнать, каковы мои варианты, чтобы размерное перечисление работало с length в качестве одного из его значений. Можно ли создать перечисление без определения метода length для модели?

1 Ответ

4 голосов
/ 11 февраля 2020

length - это зарезервированное имя метода. Таким образом, вы не можете использовать это зарезервированное имя метода.

вы можете попробовать, используя префикс:

class Klass < ApplicationRecord
  enum dimension: { length: 'length', breadth: 'breadth' }, _prefix: :dimension
end

Примечание : метод класса "length", который уже определен ActiveRecord :: Relation.

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