2013-08-16 3 views
2

У меня возникла проблема с оптимизацией большого запроса activerecord. Мне нужно включить связанную модель в мой запрос, но из-за размера возвращаемого набора я хочу включить только пару связанных столбцов. Например, у меня есть:Rails Активировать запрос Activerecord:

Post.includes(:user).large_set 

Пока я ищу что-то вроде:

Post.includes(:user.name, :user.profile_pic).large_set 

мне нужно на самом деле использовать имя и фото профиля атрибуты так Post.joins (: пользователь) не вариант насколько я понимаю.

ответ

2

select является то, что вы ищете:

Post.select("posts.*, users.name, users.profile_pic").large_set 

http://guides.rubyonrails.org/active_record_querying.html#selecting-specific-fields

+0

Это было не совсем то, что я искал, но вы были правы, что я нужен метод select, поэтому я собираюсь принять этот ответ. Технически ваш звонок включает в себя всю модель пользователя, чего я пытался избежать. Самый маленький вызов: Post.select («posts. *, Users.name, users.profile_pic»). Big_set – Raskolnikov

+0

И спасибо за помощь кстати. – Raskolnikov

+0

Добро пожаловать. Я обновил ответ, чтобы соответствовать тому, что сработало для вас. –

0

Вам нужно будет использовать соединение, чтобы выполнить то, что вы хотите, поскольку в него нет этой функции. Или вы могли бы белый самостоятельно включает в себя метод :-)

Смежные вопросы