这是一个自定义rake任务文件,如果这有所不同。
我想从Pupil中提取所有user_id,然后应用它们来获取所有学生的User.id.
很高兴用正确的user_id打印出第2行,但后来考虑了user_id a'方法'在第3行打破。为什么?我的错误在哪里?
course_pupils = Pupil.where(course_id: study.course_id)
course_pupils.map { |a| puts a.user_id }
pupils = User.where(id: course_pupils.user_id )
答案 0 :(得分:1)
course_pupils仍然是一种关系。第2行是非破坏性的(如果是,它会把它变成nils数组,因为puts
返回nil)。
你需要这样做:
pupils = User.where(id: course_pupils.pluck(:user_id) )
或类似的东西
答案 1 :(得分:1)
你做错了,你不能在集合上调用实例方法user_id
,试试这个
user_ids = Pupil.where(course_id: study.course_id).pluck(:user_id)
pupils = User.where(id: user_ids )
希望有所帮助!