Rails:You need to supply at least one validationというエラーが出た話


最初に

カレンダー企画2020の21日目
プログラミングの勉強を始めて3ヵ月程経ったので学んだことのメモをアウトプットとして記事に残します。
これからプログラミングの世界に入る人の手助けになれたら嬉しい限りです。
間違っていたり、言葉が違っていたり、誤解されるような言葉があったら教えてください^^
言葉を長々と読みづらかったら申し訳ありません。少しずつなれてがんばります。

You need to supply at least one validationというエラーが出た話

このエラーが出たにはバリデーションをカスタムで作成した時でした。
(完全な私の凡ミスです^^;)

環境

環境
Rails 5.2.4.4
ruby 2.6.3

原因

demo.rb

validates :demo
validates :body, presence: true

def demo
  #本件には関係ないので割愛
end

これでは

こんなエラーが出てしまう^^;

解決

demo.rb

validate :demo
validates :body, presence: true

def demo
  #本件には関係ないので割愛
end

以上!

validatesではなくvalidateだったみたいです。
sが余分だったという問題でした。

標準的なバリデーションはvalidatesみたいです。
(よく使うものだと、空白はダメという例の2行目にあるもの)

カスタムしたバリデーションはvalidateにするようです。

最後に

同じようにミスをしてしまった人が早期解決できるようにメモがてら書いてみました。
良かったら参考にしてください。