2017-02-16 1 views
0

Я хотел бы привязать свои области в соответствии с условиями. Но из-за ленивой оценки областей в ActiveRecord учитывается только последнее присвоение.Эквивалент + = (плюс равный) для добавления областей с помощью ActiveRecord в рельсах

@list = Product.all 
if condition 1 
    @list = Product.scope1 
if condition 2 
@list = Product.scope2 
if condition 3 
    @list = Product.scope3 
... 
@list 

Я хотел был бы иметь возможность накопить области один за другим.

ответ

2

Chain их как этот

@list = Product.all 
@list = @list.scope1 if condition1 
@list = @list.scope2 if condition2 
@list 

Тогда в конце концов @list держит элементы, которые вы хотите.

+1

Спасибо! Теперь кажется очевидным, что у меня есть ответ. – Morgan

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