2016-10-27 4 views
0

У меня есть небольшая проблема понимания:рубин на рельсах: поиск через ассоциации

У меня есть Channel и Lecturer, где Channel:has_and_belongs_to_many :lecturers.

Я хочу получить все каналы, где Lecturer.id is 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

«Это не работает» - * как *? Что происходит *? – ArtOfCode

ответ

1

Вы хотите присоединиться к таблицам для выполнения этого запроса. См. the docs

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

Спасибо, я посмотрю! – Brian

Смежные вопросы