STIではvalidates_uniqueness_ofがややこしい
Rails 1.2.6
class RealEstate < ActiveRecord::Base validates_uniqueness_of :name end class Building < RealEstate end class Land < RealEstate end
building1 = Building.new(:name => 'test') building1.save # => true building2 = Building.new(:name => 'test') building2.save # => false land1 = Land.new(:name => 'test') land1.save # => true
テーブルでユニークにならないので、例えば、RealEstate.find_by_name('test')とかやると酷い目に会います。