Railsで列挙型を指定して検証するにはどうすればいいですか? 質問する

Railsで列挙型を指定して検証するにはどうすればいいですか? 質問する

現在、ステータス列を持つ Attend モデルがあり、このステータス列にはいくつかの値しかありません。 STATUS_OPTIONS = {:yes, :no, :maybe}

1) ユーザーが Attend を挿入する前にこれをどのように検証できるかわかりません。基本的には Java の列挙型ですが、これを Rails で実行するにはどうすればよいですか?

ベストアンサー1

Rails 4.1enum が含まれている場合は、次の操作を実行できます。

class Attend < ActiveRecord::Base
  enum size: [:yes, :no, :maybe]

  validates :size, inclusion: { in: sizes.keys }
end

これにより、スコープ (つまり、、Attend.yes) 、特定のステータスが設定されているかAttend.noどうAttend.maybeかを確認するチェッカー メソッド (つまり、、、#yes?) 、および属性セッター メソッド (つまり、、、)が#no?提供されます。#maybe?#yes!#no!#maybe!

列挙型に関する Rails ドキュメント

おすすめ記事