2016-09-29 6 views
-1

У меня есть два студента и курсы, и между учениками и курсами есть has_many отношения. Я хочу выбрать тех студентов, которые имеют соответствующие строки в курсах.Выберите строки таблицы, имеющие соответствующие строки в другой таблице

Как я могу достичь этого. Заранее спасибо!

+0

Можете ли вы быть более ясными –

+0

@ Deepak ясно, он хочет видеть список студентов, у которых есть хотя бы s ome курсы, связанные :) –

+0

Это потрясающий вопрос, на который можно ответить даже с помощью полузасушливого прохождения через документацию. Читайте: http://guides.rubyonrails.org/association_basics.html. –

ответ

1

Чтобы выбрать студентов, которые связаны курсы, которые вы бы с:

Student.joins(:courses) 

Чем, вы можете запросить/фильтровать выше, дополнительно указав столбцы для фильтрации в таблице курсов:

Student.joins(:courses).where(courses: { name: 'History' }) 
+0

Что такое downvote? Как этот корректный ответ выглядит некорректным? –

0

, если вы хотите найти студентов по определенному курсу:

Вы можете добавить has_many students в модель курса, которая даст вам доступ к:

Course.find(1).students

или

Course.find_by_name('biology').students

и т.д ...

Чтобы получить ответ на свой вопрос, вы бы с ответом Андрея Дейнеко, это даст вам все студенты, Курсы ...

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