在我的控制器中,我希望返回一个附加了2个条件的数组。
parent_ids = StudentGuardian.where(:guardian_id => current_user.school_user.id).pluck(:student_id)
classmodule_ids = SubjectStudent.pluck (:class_id)
@homework = Homework.where("subject in ?", classmodule_ids)
所以在这种情况下,我需要从表中找到一个学生ID,然后我需要从另一个表中获取一个class_id。
然后我试图显示结果。
我可以同时使用一个查询吗?
我也试过@homework = Homework.where("subject in ?", parent_ids, classmodule_ids)
当然这不起作用!
答案 0 :(得分:2)
您只想知道subject
或parent_ids
中是否有classmodule_ids
?
所以你可以将parent_ids
和classmodule_ids
合并到一个数组中:
# you could merge these a bunch of different ways, here's one:
search_ids = (parent_ids + classmodule_ids).uniq
# don't forget the () around ? below
@homework = Homework.where("subject in (?)", search_ids)
或者,如果由于某种原因您不想将parent_ids
和classmodule_ids
合并:
@homework = Homework.where("subject in (?) OR subject in (?)", parent_ids, classmodule_ids)
但所有这些都意味着subject
也是一个身份......是这样的吗?