Railsのvalidation オプション「inclusion」の使い方

こんにちは!kossyです!




さて、今回は、Railsのバリデーションオプションの一つである、
「inclusion」オプションの使い方について、ブログに残してみたいと思います。




環境
Rails 5.2.3
Ruby 2.6.3
MacOS Mojave






使い方

その属性が持つ値がinclusion内で定義した値に含まれているかを検証します。

って言ってもわかりづらいので、具体例を出してみます。


例として、状態ステータスを持つ属性があるとします。
そして、その属性が持ち得る値として、定数を定義します。

STATUS_VALUES = ['draft', 'published', 'secret']

この定数を、inclusionオプションに渡します。

app/models/hoge.rb

class Hoge < ApplicationRecord

  STATUS_VALUES = ['draft', 'published', 'secret']


  validates :status, inclusion: { in: STATUS_VALUES }

end

こうすることによって、statusカラムに入れられる値を制限することができます。



参考にさせていただいた記事
Active Record バリデーション - Railsガイド
バリデーション(validation) | Railsドキュメント