Подтвердить что ты не робот

Activerecord - как получить весь столбец соединенных таблиц

После чтения: this

Я все еще не понимаю. в консоли:

puts Category.joins(:posts)

Он выполняет объединение или левое соединение по категориям и сообщениям.

Однако все возвращенные данные представляют собой только столбцы в таблице Category. Как получить данные столбцов в столбце.?

Должен ли я сделать еще одну модель для этого?

после прочтения: this Является ли find_by_SQL единственным способом? Мне нужен способ ActiveRecord, если это возможно.

Спасибо.

4b9b3361

Ответ 1

Вы можете получать столбцы в таблицах сообщений, выполняя дополнительные запросы, например:

Category.joins(:posts).collect{|category| category.posts.map{|post| post.attributes.merge(category.attributes) } }

Это даст вам гигантский список атрибутов сообщений и категорий, объединенных вместе для каждой категории.

Но точка создания соединения в категории - это получить набор категорий, которые имеют определенные, следующие определенные критерии присоединения. Если мы возьмем следующий пример в том же руководстве,

Post.joins(:category, :comments)

Это также дает вам список сообщений, но список содержит только сообщения, которые следуют за ограничением объединения, то есть все они имеют категорию и комментарий.

Ответ 2

Вы можете попробовать метод select():

Category.select("categories.*, posts.*").joins(:posts)