【发布时间】:2016-04-06 14:24:15
【问题描述】:
我有两个模型...
models/Resident.rb:has_many:叶子
models/leave.rb:belongs_to: resident
现在我想在创建离开模型属性之前对其进行验证..
leave.rb 属性:start_date,end_date,destination
这是我的休假模式:
class Leave < ActiveRecord::Base
belongs_to :resident
validates :destination,presence:true
validates :end_date,presence: true
validates :start_date,presence: true
before_create :check_correct_leave
private
def check_correct_leave
if resident.hostel.hostel=='J'
(self.end_date - self.start_date).to_i == 4 || (self.end_date - self.start_date).to_i == 5
else
errors.add(:start_date, "Leave are granted only 4 or 5 days")
end
end
end
我希望 check_correct_leave 方法也检查 --> 如果居民已经有一个月的休假(存储在休假模型中)(月份表示 1 月、2 月等),那么它应该产生一个错误:
“您无法标记请假,因为您已经标记了本月的请假” 并且模型不应该存储该离开。 谢谢!
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 activerecord activemodel