2017-02-21 2 views
0

Для booleans Я могу использовать это в рубине, и он работает.удобные методы для извлечения нескольких записей в рубине и добавления к одной переменной

@listing=listing.draft? && listing.published? 

Но что, если у меня есть несколько запросов, который возвращает array или что-то

Давайте говорить drafts и published являются два methods на model, который возвращает array из listings

поэтому любой handy method получить как как && и || в boolean?

Если я сделать ниже код, который я могу видеть, что только последний запрос (after &&) сохранялось всегда и первый один (before &&) получает перекрываться ..

@listings=listing.drafts && listing.published 

PS: Я знаю, что я могу получить каждый отдельно и толкать это к массиву, но как , существуют методы из буферов из окна, возможно ли сделать , что для небулевых запросов?

+1

Вы можете использовать 'listing.where (status: [: draft,: published])'. Если вы используете enum, замените имена (черновики и опубликованные) на значения enum. – jaspreet21anand

+0

@ jaspreet21anand Спасибо .. – Abhilash

ответ

1

Вы можете использовать listing.where(status: [:draft, :published]). Это вызовет запрос IN при использовании базы данных SQL. Если вы используете enum, тогда замените имена (черновики и опубликованные) значениями перечисления.