2013-11-01 2 views
0

Предположим, у меня есть модель под названием Product, которая принадлежит модели Collection, и я хочу получить сгруппированный список продуктов для моего индексного представления. Я могу сделать это так:Реализует активный запрос записи с сиротами - что мне здесь делать?

def index 
    products = Product.all 
    @grouped_products = products.group_by &:collection 
end 

Это прекрасно работает. Но теперь скажем, что я хочу убедиться, что коллекции, которые я группирую, фактически существуют в первую очередь? Если есть дети-сироты, в представлении бросаются ошибки. Я не хочу делать валидацию присутствия в представлении, поэтому как мне это сделать на уровне контроллера/модели?

NB: Я хочу, чтобы дети-сироты были созданы как часть дизайна моей системы, я просто хочу, чтобы они были исключены из определенных представлений.

ответ

1

Вы можете использовать соединение для фильтрации сиротских продуктов из запроса.

products = Product.joins(:collection) 
@grouped_productst = products.group_by &:collection 
+0

Отлично! Спасибо! – henryeverett

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