Ruby on rails 3 在自定义验证之前验证存在性
砰!错误,当开始时,或结束时为零Ruby on rails 3 在自定义验证之前验证存在性,ruby-on-rails-3,validation,activerecord,activemodel,Ruby On Rails 3,Validation,Activerecord,Activemodel,砰!错误,当开始时,或结束时为零 validates :place_id, :title, :level, :start_at, :end_at, :presence => true validate :event_takes_place_in_one_day, :event_is_not_in_past def event_takes_place_in_one_day binding.pry self.start_at.day == self.end_at end 好
validates :place_id, :title, :level, :start_at, :end_at, :presence => true
validate :event_takes_place_in_one_day, :event_is_not_in_past
def event_takes_place_in_one_day
binding.pry
self.start_at.day == self.end_at
end
好吧,也可以用自定义验证器实现这一点,但我想不是这样,因为每个类只有一个验证器,所以我应该用三个类进行三次检查,不是吗
附言
应用程序有一个会议模型,其开始时间为,结束时间为DateTime类型
属性,指示会议的开始和结束
分别地
我需要实现下一个逻辑
开始时间<结束时间(开始时间晚于结束时间)
开始时间=结束时间(会议在一天内结束)
而且只能为当月创建会议。零检查对您有效吗
undefined method `to_datetime' for nil:NilClass
-
app/models/meeting.rb:22:in `cover?'
app/models/meeting.rb:22:in `event_is_not_in_past'
app/controllers/meetings_controller.rb:18:in `create'
def event_takes_place_in_one_day
#only execute if start_at & end_at is not nil
unless self.start_at.nil? || self.end_at.nil?
binding.pry
self.start_at.day == self.end_at
end
end