activerecord - как получить весь столбец объединяемых таблиц - PullRequest
12 голосов
/ 27 февраля 2012

После прочтения: это

Я до сих пор не понимаю. в консоли:

puts Category.joins(:posts)

Выполняет присоединение или левое присоединение к категории и сообщению.

Однако все возвращаемые данные - это просто столбцы в таблице категорий. Как также получить эти данные столбца в Post. ?

я должен сделать другую модель для достижения этой цели?

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

Спасибо.

Ответы [ 2 ]

6 голосов
/ 27 февраля 2012

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

Category.select("categories.*, posts.*").joins(:posts)
4 голосов
/ 27 февраля 2012

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

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

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

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

Post.joins(:category, :comments)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...