У меня есть модели order.rb, line_items.rb - где line_item принадлежит порядку. Я добавил пользовательские проверки, поэтому заказ должен содержать только line_items с одинаковым merchant_id
Мой вопрос: кажется, что проверка работает нормально - я могу получить ошибку, когда она нарушена, но записи "line_item" все еще сохраняются в любой ситуации Есть идеи?
Order.rb
validate_on_update :only_one_merchant
def only_one_merchant
merchants = []
for line_item in self.line_items
merchants << line_item.product.merchant_id
end
merchants = merchants.uniq
errors.add(:line_items, "You could only order from one same merchant at time") if merchants.length > 1
end
Order.rb добавление line_item
current_item = LineItem.new(:quantity => quantity)
current_item.variant = variant
current_item.price = variant.price
self.line_items << current_item