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')とかやると酷い目に会います。