前提・実現したいこと
通常のバリデーションとカスタムのバリデーションを実装したい。
発生している問題・エラーメッセージ
- エラーメッセージ:undefined method `hour' for nil:NilClass
- 発生している問題:
vaildatesとvalidateを併用すると上記エラーメッセージが出る。この時、validateの方のみ機能している。
validateがなければvalidatesは正常に機能する。
該当のソースコード
Ruby
1class Shift < ApplicationRecord 2 3 belongs_to :staff 4 has_many :post_comments, dependent: :destroy 5 6 validate :start_finish_check 7 validates :date, presence: true 8 validates :start_time, presence: true 9 validates :finish_time, presence: true 10 11 def start_finish_check 12 errors.add(:finish_time, "が開始時刻を上回っています。正しく記入してください。")if self.start_time.hour >= self.finish_time.hour 13 end 14 15 16end
試したこと
仮説:エラーメッセージ通り、hourをどこか定義すればいいと思うのだが、validateのみだと機能するので、hour以外の問題もあるのではと思う。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/01/11 03:42
2022/01/11 03:46
2022/01/11 04:54