В ARel есть метод select, но вы должны использовать правильные имена таблиц (т.е. множественное число и остерегайтесь, если у вас полиморфные модели или вы используете set_table_name или какую-либо другую подобную нестандартную практику)
@items = Item.
select('users.name', 'users.created_at', 'orders.created_at', 'suppliers.name', 'agents.name', 'manufacturers.name').
where(:users => { :fulfilled => true }).
includes(:orders => [:supplier, :agent], :manufacturer)
«Мы можем использовать select с объединениями, не включенными» - @ Bhavesh_A_P
Примечание:
Как указано выше @Bhavesh_A_P, select
с includes
не обеспечивает согласованного поведения,Похоже, что если включенная ассоциация не возвращает результатов, select
будет работать правильно, если она возвращает результаты, оператор выбора не будет иметь никакого эффекта.Фактически, оно будет полностью проигнорировано, так что ваш оператор select может ссылаться на недопустимые имена таблиц, и не будет возникать никаких ошибок.select
с joins
приведет к согласованному поведению.