has_and_belongs_to_many count validation

I am using the has_and_belongs_to_many association and I would like to limit the number of records that can be joined. I can figure out how to do it. I can validate on update using this in the model:

  def validate     if self.bartypes.count > 4       errors.add_to_base("Please only select 4 Bar types")     end     if self.restauranttypes.count > 4       errors.add_to_base("Please only select 4 Restaurant types")     end   end

That works great after the record is created but it doesnt work on create because I would guess that there is no way to count the records before they are created. Is there a way to count the params in the model? I could just count the number of records that the form sends.