回答:
Rails 2では、私は次のように書いたでしょう:
validates_uniqueness_of :zipcode, :scope => :recorded_at
Rails 3の場合:
validates :zipcode, :uniqueness => {:scope => :recorded_at}
複数の属性の場合:
validates :zipcode, :uniqueness => {:scope => [:recorded_at, :something_else]}
validates :zipcode, :uniqueness => {:scope => [:recorded_at, :something_else]}
ますか?
:scope
、外部キーの上に、あなたが使用する必要がある:fkey_id
のではなく、記号を:fkey
「基本」はあっても、ものの:uniqueness
上で動作します:fkey
, :message => ' is taken for this recorded date'
class TeacherSchedule < ActiveRecord::Base
validates_uniqueness_of :teacher_id, :scope => [:semester_id, :class_id]
end
http://apidock.com/rails/ActiveRecord/Validations/ClassMethods/validates_uniqueness_of
これはグレッグの質問に答えるはずです。
recorded_at
は、郵便番号の範囲内で一意である必要があると言う方が理にかなっていると思います。validate :recorded_at, : uniqueness => { :scope => :zipcode }