Das ist mein Modell ist -Rails 4 - Benutzerdefinierte Validierungsfehler
class Leave < ActiveRecord::Base
belongs_to :staff
validates :staff, :leave_type, :start_date, :end_date, :number_of_days, :approved_by, presence: true
enum leave_type: {Medical: 0, Annual: 1, Urgent: 3, "Birth Leave": 4}
validate :check_leave, :if => "self.number_of_days.present?"
protected
def check_leave
if self.leave_type = 0
if (self.number_of_days + LeaveAllocation.last.medical_leave_counter) > LeaveAllocation.last.medical_leave
self.errors.add(:number_of_days, "Days exceeded the limit")
end
end
if self.leave_type = 1
if (self.number_of_days + LeaveAllocation.last.annual_leave_counter) > LeaveAllocation.last.annual_leave
self.errors.add(:number_of_days, "Days exceeded the limit")
end
end
end
end
Wenn ich versuche, die Validierung zu führen, scheint es nur überprüft die ersten „0“ auch wenn ich die getroffene Auswahl zu ändern auf „1“. Jede Hilfe wäre willkommen! Danke
Beim Erstellen und Aktualisieren, number_of_days ist der Feldname (Integer) –
können Sie bitte komplette Model Class buchen? @Sean Lin –
Aktualisiert mit komplettem Modell –