2016-10-27 165 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