Search code examples
ruby-on-railsmodelsvalidationunique

Rails: Validating uniqueness across multiple models


Is there a way to validate the uniqueness of an attribute among columns in two different models. For example:

I have a bike model and a car model. When I create a new bike, I want to validate that the name of the bike is unique in that there is no other bike or car with that name. I don't want to put these into one model because they have vastly different properties. I'm on rails 2.3.8

Thanks.


Solution

  • Rails doesn't validate across models (I don't think, anyways) automatically. You should probably just write your own method to check, a la…

    class YourModel < ActiveRecord::Base
      validates :uniqueness_of_a_property_across_models
    
      def uniqueness_of_a_property_across_models
        // check the other model
      end
    end