2013-03-01 2 views
3

у меня есть 3 таблицы:Rails сфера - как соединить 3 таблицы

schools{id, name, desc, adress} 
reviews{id, content, rating, school_id, user_id} # user_id & schoold_id is foregin keys 
users{id, name, city} 

Как написать область применения рельсов объединяет все 3 таблицы и захватить столбец schools.name, reviews.content и reviews.rating, тем users.name

Я использую рельсы 3.2

+0

Если вы правильно определили свои ассоциации (has_many, belongs_to), вы должны прочитать обзор и сказать review.school.name, review.user.name. – dmoss18

+0

Да, я знаю это, но это не то, что я ищу. – SHUMAcupcake

+0

Review.joins (: school,: user) .select («content, rating, name»). All Возвращает массив с объектами только с этими атрибутами. Не уверен, как обращаться с школой и пользователями, имеющими одинаковое имя_источника (имя) – dmoss18

ответ

0
scope :mashup, joins(:school, :user).select("content, rating, schools.name as sname, users.name as uname") 

Вы можете узнать больше here

+0

классно, как мне это сделать с помощью области видимости? – SHUMAcupcake

+0

обновил мой ответ. Оказывается, вам не нужен .all в конце – dmoss18

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