2016-09-22 45 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) 

希望有幫助!

相關問題