При извлечении контента из базы данных с использованием activerecord я хотел бы получить пользовательский набор результатов с указанными столбцами в двух таблицах.
SELECT users.name, users.username, users.age, users.city_id, cities.name as city_name FROM users INNER JOIN cities ON users.city_id = cities.id
Что будет в AR как
Users.find(:all,
:joins => :cities,
:select => "users.name, users.username, users.age, users.city_id,
cities.name as city_name")
Но это возвращает только результаты таблицы пользователя, а не результаты по городу. Я на 100% уверен, что внутренний оператор соединения выполняется (что обе таблицы объединяются).
Кажется, что возвращаемый объект имеет только столбцы, связанные с моделью. Таким образом, UserModel будет иметь только те столбцы, которые есть в таблице users, и не позволит извлекать столбцы таблицы city, даже если они указаны в select.
Должен ли я использовать: joins или: include? Есть идеи, что происходит?