gpt4 book ai didi

ruby-on-rails - rails : Concat Two CollectionProxies with two different models

转载 作者:行者123 更新时间:2023-12-05 06:44:21 26 4
gpt4 key购买 nike

正如标题所解释的,假设我有两个 ActiveRecord::Base 模型:SatStudentAnswer 和 ActStudentAnswer。

我有一个学生模型

has_many :act_student_answers
has_many :sat_student_answers

我想创建一个集合代理,将它们连接在一起,这样我就可以一起查询所有学生的答案。

student.sat_student_answers.concat(student.act_student_answers)

但是我得到一个ActiveRecord::AssociationTypeMismatch:SatStudentAnswer(#70111600189260) 预期,得到 ActStudentAnswer(#70111589566060) 错误。

有没有办法用两种不同的模型创建一个集合代理,以便我可以继续使用 Active Record 查询接口(interface)?如果没有,解决此问题的最佳方法是什么?

谢谢你的帮助!

最佳答案

据我所知,没有办法创建 Rails AR:Relation 与其中的不同模型(当我需要创建包含不同类型帖子的新闻源时,我深入研究了这个问题)。我的解决方案不是很漂亮,但很有效:我创建了具有多态 has_many 的附加模型。您可以查询这些新定义模型的集合,并通过字段 answer_type 区分 sat_answers 和 act_answers。

关于ruby-on-rails - rails : Concat Two CollectionProxies with two different models,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29619134/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com