После прочтения: thisActiveRecord - как получить все колонки соединяемых таблиц
Я до сих пор не понимаю. в консоли:
puts Category.joins(:posts)
Выполняет соединение или левое соединение по категории и положению.
Однако все возвращенные данные представляют собой только столбцы в таблице категорий. Как получить данные столбцов в столбце. ?
Должен ли я сделать еще одну модель для достижения этой цели?
после прочтения: this Is find_by_SQL - единственный способ? Я хочу, если возможно, ActiveRecord.
Спасибо.
Вы должны уточнить, чего вы пытаетесь достичь. Если вы хотите, чтобы это «способ активной записи», вы даже не должны говорить о «столбцах», потому что вы управляете объектами, а не таблицами. Если вам действительно нужны необработанные данные, вы можете использовать 'ActiveRecord :: Base.connection.select_all ('SELECT ...')', это вернет вам массив хэшей (без инициализации модели). [документация здесь] (http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/DatabaseStatements.html#method-i-select_all) –
спасибо, я использую этот путь сейчас: ActiveRecord :: Base.connection .select_all (Category.joins (: posts) .to_sql)), так ли это слишком противно? –
Нет проблем. Однако, если вы действительно хотите работать с ORM, вы должны использовать только эти трюки для действительно сложных SQL-запросов. Для такой тривиальной проблемы я бы использовал решение @ abhishek + 'includes'. Зачем использовать ORM, если вы не используете код OO? –