次のようなモデルがあります
class Lecture
include Mongoid::Document
belongs_to :orgnization
belongs_to :schedule
has_one :lecturer
validates :lecturer, presence: true, uniqueness: { scope: [:orgnization, :schedule] }
end
これは、講師が組織ごとのスケジュールごとに一意であることを検証することで完全に正常に機能します...
私が作ろうとすると問題が発生しますlecture has_many :lecturers
class Lecture
include Mongoid::Document
belongs_to :orgnization
belongs_to :schedule
has_many :lecturers
# the following validation doesn't work
validates :lecturers, presence: true, uniqueness: { scope: [:orgnization, :schedule] }
end
関係has_many
を評価するのと同じ方法で一意性を評価するように、これを修正するにはどうすればよいですかhas_one
次のようなものが欲しい
class Lecture
...
validate :lecturers_schedule
def lecturers_schedule
# Pseudo code
lecturers.each do |lecturer|
validates :lecturer, uniqueness: { scope: [:orgnization, :schedule] }
end
end
end
この回答を見ましたが、うまくいきませんでした