Вы можете сделать это, но это не повлияет на SQL-запросы, которые создаются в результате (при условии, что вы пытаетесь оптимизировать базовый запрос?):
class Pastry
...
def summary
{
:id => self.id,
:image_url => self.image_url
}
end
end
class Bakery
...
def summary
pastries.collect {|i| i.summary }
end
end
Это даст массив хешей, а не экземпляры модели.
ActiveRecord не ведет себя так, как вы ожидаете от моделей - он будет получать любые данные, которые, по его мнению, вам нужны. Вместо этого вы можете использовать гем Sequel или выполнить необработанный запрос SQL, например:
Pastry.find_by_sql("SELECT id, name from ...")
Но это может дать вам неожиданное поведение.