attr_accessor ломает 2 моих метода в Rails

У меня есть модель пользователя. Одним из его атрибутов является строка с именем :access который может быть либо nil, "admin", либо "active".

Теперь внутри модели User у меня есть следующие методы:

def admin?
  self.access == "admin"
end

def active?
  self.access == "active"
end

Они работают нормально. Но если я добавлю attr_accessor :access к модели что-то ломается. мой admin? а также active? методы больше не работают. Когда я захожу в консоль rails и вынимаю пользователя из базы данных, я вижу, что user = User.find(7) шоу access установлен в "админ". Но если я наберу user.access это возвращается nil, user.admin? возвращается false,

1 ответ

attr_accessor переписывает стандартные методы чтения и записи атрибута из базы данных. Зачем тебе attr_accessor если это уже столбец в БД и Rails предоставляет вам методы чтения и записи. Вы путаете это с attr_accessible?

Другие вопросы по тегам