我有一个名为AnswerConnection
的模型,它有两个来自Answer
模型的外键:answer_1
和answer_2
。
在我定义的Answer
模型中:
has_many :connections, through: :answer_connections, source: :answer_2
但是,关系是simmetrycal:如果answer_1连接到answer_2,则answer_2连接到answer_1。这意味着当我搜索特定答案的连接时,我需要检查它是否存在于answer_1或answer_2字段中。
可以定义参与此关系(如果我可以在:source
参数中定义两个值)?
答案 0 :(得分:1)
我认为你不能设置2个来源,但如果我理解正确,你可以这样做:
has_many :connections_1, through: :answer_connections, source: :answer_1
has_many :connections_2, through: :answer_connections, source: :answer_2
def connections
connections_1.merge(connections_2) # intersection
# or connections_1.or(connections_2) for union
end