class Participant
has_many :cells
end
class Round
has_many :cells
end
class Question
has_many :cells
end
class Cell
belongs_to :participant
belongs_to :question
belongs_to :Round
end
a = an instance of Participant, Question or Round
b = an instance of Participant, Question or Round
指定された a と b に属する Cell のすべてのインスタンスにわたって繰り返しを書きたいと思います。a と b が同じクラスのインスタンスではないことはわかっていますが、それらがどちらであるかは前もってわかりません。
私は書くことができると思います:
if a.class == Participant && b.class == Question
Cell.select(participant_id: a.id, question_id: b.id).each do
... and so on
しかし、それは本当に醜いです。何らかの方法で join メソッドを使用する必要があると思いますが、私はそれを理解できませんでした。ありがとう!