Rails における Enum について
- POST
Rails における Enum の挙動について調査した内容を備忘録として残しておく
環境 ruby: 2.7.6 rails: 5.2.8.1 実際のコード DB のカラムに対応する enum を定義した場合、自動的に scope が定義される
※Rails 6 では not_* の scope も自動的に定義される 参考
※Rails 7 では新しい構文が追加されたため、今後オプションの指定が従来のやり方だと非推奨になる可能性がある 参考
[モデル定義]
class Article < ApplicationRecord enum status: { draft: 0, # 下書き published: 1, # 公開中 closed: 2, # 掲載終了 }, _prefix: true end [Rails Console]
# enum 確認 Article.statuses #=> {"draft"=>0, "published"=>1, "closed"=>2} # scope Article.status_published #=> Article Load (7.