为什么 Rails 认为模型属性是一个方法?
why does Rails think Model attribute is a method?
这是一个自定义的 rake 任务文件,如果有差异的话。
我想从 Pupil 中提取所有 user_id,并应用它们为所有学生获取 User.id。
它很高兴地用正确的 user_id 打印出第 2 行,但随后考虑 user_id 一个 'method' 并在第 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 )
course_pupils 在第 3 行中调用它时仍然是一个关系。第 2 行是非破坏性的(如果是,它将把它变成一个 nils 数组,因为 puts
returns 无)。
您需要做的:
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 )
希望对您有所帮助!
这是一个自定义的 rake 任务文件,如果有差异的话。
我想从 Pupil 中提取所有 user_id,并应用它们为所有学生获取 User.id。
它很高兴地用正确的 user_id 打印出第 2 行,但随后考虑 user_id 一个 'method' 并在第 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 )
course_pupils 在第 3 行中调用它时仍然是一个关系。第 2 行是非破坏性的(如果是,它将把它变成一个 nils 数组,因为 puts
returns 无)。
您需要做的:
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 )
希望对您有所帮助!