Ruby on Rails - выберите все из двух таблиц в контроллере - PullRequest
0 голосов
/ 29 октября 2011

В моем companies_controller у меня есть следующее:

def show
@company = Company.find(params[:id], 
:conditions => ['companies.id = addresses.company_id'], 
:joins => [:address])
respond_with(@company) do |format|
format.xml { render :xml => @company}
end
end

Что приводит к:

SELECT "companies".* FROM "companies" INNER JOIN "addresses" ON "addresses"."company_id" = "companies"."id" WHERE "companies"."id" = ? AND (companies.id = addresses.company_id) LIMIT 1

в консоли сервера.

ОДНАКО, я пытаюсь получить SELECT *, поэтому я получаю все столбцы из ОБОИХ таблиц. Причина, по которой я пытаюсь это сделать, заключается в том, что мне нужно свернуть данные о компании / 1.xml, чтобы вернуть все данные. Может быть, мне нужно создать новый контроллер как для компании, так и для адресной модели?

Спасибо, Chris

1 Ответ

0 голосов
/ 29 октября 2011

Вы должны иметь возможность использовать :include так:

render :xml => @company.to_xml :include => [:address]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...