【Rails】ActiveRecord で定義した enum をスコープとして検索できる
例えば以下のようなモデルがあったとして
class Book < ApplicationRecord enum category: { hidtory: 1, technorogy: 2, comics: 3 } end
enum で定義したものは検索用のスコープも追加される。
そのため、history
の結果を取得したければ、こんな感じで書けばいい。
books = Book.history # SELECT "books".* FROM "books" WHERE "books"."sales_status" = ?
また、history
以外を取得したい場合は not_
を頭につければいい。
books = Book.not_history # SELECT "books".* FROM "books" WHERE "books"."sales_status" != ?
not_
は知らなかったが、めっちゃお手軽。