class Closet < ActiveRecord::Base belongs_to :floor validates_associated :floor has_many :switches validates_presence_of :number validates_uniqueness_of :number, :scope => 'floor_id' :message => 'already exists on this floor' validates_length_of :number, :maximum => 10 def validate if closet.floor.rooms.collect {|r| r.number }.include?(closet.number) errors.add(:number, "can't be the same number as a room on the same floor") return false end end