2016-09-22 74 views
0

这是一个自定义rake任务文件,如果这有所作为。为什么Rails认为Model属性是一种方法?

我想从瞳孔中提取所有user_id,并将其应用于获取所有学生的User.id。

它用正确的user_id打印出第2行,但后来认为user_id是'方法'并在第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) 

回答

1

course_pupils仍然是当你在行称这是一个关系3. 2号线是无损(如果是,那就把它变成尼尔斯数组因为puts返回nil)。

你需要做的:

pupils = User.where(id: course_pupils.pluck(:user_id)) 

或者类似的东西

1

你做错了,你不能在一个集合调用一个实例方法user_id,试试这个,而不是

user_ids = Pupil.where(course_id: study.course_id).pluck(:user_id) 
pupils = User.where(id: user_ids) 

希望有帮助!

相关问题