Моя цель - иметь строки, в которых результаты цикла, имеющие соответствующие атрибуты, имеют одинаковый цвет фона
Вот моя попытка:
контроллер:
vendor_products = VendorProduct.where(vendor_id: current_user.id)
@vendor_orders = Order.where(product_id: vendor_products.map { |vp| vp.product_id}).order(created_at: :desc)
Форма: 1012 **
<% @vendor_orders.each do |order, cart_id| %>
<tr class="ok">
<% if order.cart_id.present? && order.cart_id == order.cart_id %>
<td><%= order.id %></td>
<td><%= order.cart_id %></td>
.....
<% else %>
<td><%= order.id %></td>
<td><%= order.cart_id %></td>
.....
<% end %>
</tr>
<% end %>
(пробовал if
оператор как внутри, так и снаружи <tr>
)
Тип:
.ok:nth-child(odd) {
background: red;
}
.ok:nth-child(even) {
background: blue;
}
Моя цель состоит в том, чтобы, если cart_id ордера совпадал, тогда для количества x заказов, совпадающих с cart_id, был одинаковый цвет фона, поэтому известно, что они - одна и та же корзина.
Пример:
ID | Cart
1 | 1 (red)
2 | 1 (red)
3 | nil
4 | 2 (blue)
5 | 2 (blue)
Итак, ID 1 и 2 будут иметь красные строки, а ID 4 и 5 - синие. 3 не имеют цвета, так как он не принадлежит ни к какой корзине. Также хотелось бы, чтобы это были только тележки с несколькими предметами.
У некоторых заказов нет корзины, и с ними связан только один продукт. Некоторые заказы создаются с помощью корзины, в которой будет несколько позиций.
так в принципе, ЕСЛИ есть cart_id заказов? и cart.line_items.count> 1, чтобы все связанные с ним заказы были одного цвета.
Модели:
**cart**
has_many :line_items, dependent: :destroy
has_one :order
...
**line items**
belongs_to :cart
...
**order**
belongs_to :cart
Моя попытка ничего не значит. Все результаты просто становятся красными.
Я отмечаю JS и JQ на всякий случай, потому что я полагаю, что это приемлемый вариант, чтобы это работало.