Kos*_*aut 1 validation model ruby-on-rails-3
我正在尝试创建一个自定义验证,用于验证计划的start_date和end_date不与其他计划重叠
class Schedule < ActiveRecord::Base
#has many scheduleTimes (fk in scheduleTime)
has_many :scheduletimes, :inverse_of => :schedule
validate :dateOverlaps?
scope :active, lambda {
where('? between start_date and end_date', Date.today)
}
def dateOverlaps?
results = ActiveRecord::Base.connection.execute("Select (start_date::DATE, end_date::DATE) OVERLAPS ('#{self.start_date}'::DATE, '#{self.end_date}'::DATE) from schedules;")
errors.add_to_base("Date ranges cannot overlap with another schedule") if results.first["overlaps"] == 't'
end
Run Code Online (Sandbox Code Playgroud)
然而,这导致了
NoMethodError: undefined method `add_to_base'
Run Code Online (Sandbox Code Playgroud)
我尝试创建自定义验证器并使用私有验证方法无济于事.有人可以为我照亮一些吗?
尝试替换这个:
errors.add_to_base("Date ranges cannot overlap with another schedule")
Run Code Online (Sandbox Code Playgroud)
有了这个:
errors.add(:base, "Date ranges cannot overlap with another schedule")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4571 次 |
| 最近记录: |