Поправь меня, если я ошибаюсь.
- Вы хотите отобразить все продукты, если
@current_products
пусто.
- Если
@current_products
не пусто, то вы отображаете @current_products
+ все остальные продукты в базе данных, что опять же все продукты. Только порядок будет другим.
Подход 1
Если вы хотите, чтобы два набора продуктов были в отдельных переменных:
# Controller
@current_products = wherever_they_come_from
@new_products = ShopifyAPI::Product.where('id NOT IN (?)', @current_products.pluck(:product_id))
# View
<% @current_products.each do |product| %>
<!-- Render product -->
<% end %>
<% @new_products.each do |product| %>
<!-- Render product -->
<% end %>
Подход 2
Не рекомендуется, если @current_products
и продукты из ShopifyAPI::Product
не имеют одинаковых атрибутов для отображения
Если вы не хотите два набора продуктов в отдельных переменных:
# Controller
@current_products = wherever_they_come_from
@current_products |= ShopifyAPI::Product.where('id NOT IN (?)', @current_products.pluck(:product_id))
# View
<% @current_products.each do |product| %>
<!-- Render product -->
<% end %>
Примечание: Я полагаю, что ShopifyAPI
модели ведут себя аналогично ActiveRecord
моделям с точки зрения запроса.