2016-10-27 168 views
0

我有一点了解的问题:Ruby on Rails的:通过搜索协会

我有ChannelLecturer,其中Channel:has_and_belongs_to_many :lecturers

我想获得Lecturer.id为lect.id的所有渠道。

2.3.0 :235 > Channel.where(:lecturers => { :id => 2 }) 
    Channel Load (0.1ms) SELECT "channels".* FROM "channels" WHERE "lecturers"."id" = 2 
SQLite3::SQLException: no such column: lecturers.id: SELECT "channels".* FROM "channels" WHERE "lecturers"."id" = 2 
ActiveRecord::StatementInvalid: SQLite3::SQLException: no such column: lecturers.id: SELECT "channels".* FROM "channels" WHERE "lecturers"."id" = 2 

这不工作,我觉得我不理解的核心概念,因为我可以做

2.3.0 :231 > Channel.first.lecturer 
=> #<Lecturer id: 2, name: "Albert Einstein"> 

我缺少什么?

+0

“这不起作用” - * how *? *会发生什么? – ArtOfCode

回答

1

你会想要加入表来做这个查询。请参阅the docs

Channel.joins(:lecturer).where(lecturers: {id: lect.id}) 
+0

谢谢,我会研究它! – Brian