【发布时间】:2019-05-03 16:04:52
【问题描述】:
我在 Rails 应用程序中使用 ActiveRecord 的枚举时遇到了一些问题。
上下文:枚举字段代表对象的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
我正在编写一些规范,我注意到每次我尝试使用 ActiveRecord 的 API(例如 Model.all)获取模型时,每条记录都带有第一个状态(open)。当我查询数据库时,与此模型相关的表包含我为存储在数据库中的对象设置的状态。
似乎 ActiveRecord 在从表映射到模型时遇到了一些问题,但反之则不然。关于什么可能导致这种行为的任何想法?
我使用 PostgreSQL 作为数据库和 Rails 5.2.2
提前致谢!
【问题讨论】:
标签: ruby-on-rails ruby activerecord enums