У меня проблемы с использованием перечислений ActiveRecord в приложении Rails.
Контекст : Поле enum представляет status
объекта, для простоты я включил фрагмент кода, который имеет значение для этой проблемы:
class Issue < ApplicationRecord
enum status: %i[open in_progress closed rejected]
has_many_attached :files
belongs_to :issuer, class_name: 'User', foreign_key: :issuer_id
validates_presence_of :title, :description, :issuer, :issued_at, :updated_at
after_initialize do |issue|
issue.issued_at = DateTime.now
issue.updated_at = issue.issued_at
issue.status = :open
end
after_update do |issue|
issue.updated_at = DateTime.now
end
end
Я пишу некоторые спецификации, и я заметил, что каждый раз, когда я пытаюсь получить модель, используя API ActiveRecord (например, Model.all
), каждая запись имеет первый статус (open
). Когда я запрашиваю базу данных, таблицы, связанные с этой моделью, содержат статусы, которые я установил для объектов, которые я храню в базе данных.
Кажется, что ActiveRecord испытывает некоторые проблемы при отображении из таблицы в модель, но не наоборот. Есть идеи, что может быть причиной такого поведения?
Я использую PostgreSQL в качестве базы данных и Rails 5.2.2
Заранее спасибо!