我正在研究问答类型的系统,以便可以对问题进行投票并且可以对答案进行投票。我有一个多态的可投票关联,这样一个问题和一个答案有很多票。 但我想把问题答案的所有选票都换成。 如果它只是一个协会,我可以这样做:
Answer.first.votes.first.update(voteable: Question.first)
但这不适用于多个协会。
我试着这样做:
Answer.first.votes.update_all(voteable: Question.first)
但是它返回了一个无法找到列voteable
我知道实现相同结果的另一种方法是:
Answer.first.votes.update_all(voteable_type: "Question", voteable_id: 1)
但我想确定没有别的方法可以做到这一点。
答案 0 :(得分:0)
不,不可能这样做。 根据一位用户的评论:
我不确定
update_all
的计划是什么,但文档相当清楚,它不像其他关系方法那样工作。它没有实例化对象,它只返回更新的记录数,而不是ActiveRecord :: Relation,它只是直接将sql发送到数据库。甚至更多的例子都是" sql像"而且#34; rails就像"。此方法的目的是对许多记录进行快速更新。