Bonjour,
Je crée un site de réservation. Ma table Busy contient 2 colonne : debut
et fin qui sont de type datetime.
Je souhaite créer une validation pour chaque nouvelle réservation. Or
même si l'erreur est détecté, il écrit tout de même dans la base.
De plus, si toute les réservation ne sont pas détecté :
Exemple, dans la base: du 1 décembre au 31 décembre
formulaire : 2 décembre au 3 décembre
class BusyUnique < ActiveModel::Validator
def validate(record)
if Busy.where("((date_at BETWEEN ? AND ?) OR (date_to BETWEEN ?
AND ?)) AND (id != ?)", record.debut, record.fin, record.debut,
record.fin, record.id).exists? == true
end
end
end
class Busy < ActiveRecord::Base
validates :debut, :presence => true
validates :fi, :presence => true
validates_with BusyUnique
end
on 2011-12-20 12:39
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.