lib/readiness_for_completion_validator.rb にあるカスタム バリデータを作成しました。
class DisruptionTimeValidator < ActiveModel::Validator
def validate(record)
# if record.timeline.events[0].event_time > record.timeline.events[1].event_time
if true
record.errors[:Outage] << " end time needs to be after outage begin time"
end
end
end
問題は、コメントアウトされた行を「真の場合」に置き換えると、それをトリガーできないことです。
Railsコンソールで条件をテストしたところ、希望どおりに機能しましたが、バリデーターでtrueと評価されることはありません...
どんな助けでも大歓迎です、私はこれを研究するのに多くの時間を費やしました、そしてこれは私を夢中にさせています:(
多くのイベントを含むタイムラインがあります。イベントの event_time を調整することはできますが、各タイムラインには、連続して発生する必要がある 2 つの特別なイベントが含まれています。
以下は、私が app/models/event.rb に持っているものを見つけてください:
class Event < ActiveRecord::Base
attr_accessible :event_description, :event_time, :timeline_id
belongs_to :timeline
validates :event_description, :length => { :in => 10..255 }
validates_with DisruptionTimeValidator, :on => :update
end
(私は:onをいじりましたが、違いはありませんでした)
どんな助けでも大歓迎です、
どうもありがとう!