2016-09-22 2 views
0

これは違いがある場合、これはカスタムレイクタスクファイルです。RailsはModel属性がメソッドだと思うのはなぜですか?

すべてのuser_idをPupilから取得し、それらを適用してすべての生徒の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を返すので、それはNILSの配列にそれを回すでしょう)。あなたがする必要がある

:あなたは間違ってそれをやっていること

1

よう

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

か何かを、あなたは、コレクションにインスタンスメソッドuser_idを呼び出すことはできません、代わりに

user_ids = Pupil.where(course_id: study.course_id).pluck(:user_id) 
pupils = User.where(id: user_ids) 
これを試してみてください

希望に役立ちます!

関連する問題