У меня есть следующее:
after_action :prevent_order_create, :only => [:update, :create]
...
private
def prevent_order_create
@order = Order.find(params[:id]) #line 270
@listing = Order.find_by(params[:listing_id])
@order_seller = @order.where(order_status: [1]).where(:seller)
if @order_seller.count >= 0
@listing.update_column(:listing_status, 3)
end
end
Цель - ограничить количество заказов, которые могут быть открыты для любого 1 продавца.
Когда я использую этот код, я получаю следующую ошибку:
ActiveRecord::RecordNotFound (Couldn't find Order without an ID):
app/controllers/orders_controller.rb:270:in `prevent_order_create'
Заказ создается, но по какой-либо причине эта проблема возникает.Разве метод не должен проверяться ПОСЛЕ того, как заказ сделан без проблем?
кстати, используя 0
для целей тестирования.
РЕДАКТИРОВАТЬ:
Я сделал:
def prevent_order_create
@order_seller = Order.where(order_status: [1]).where(listing_id: Listing.ids)
if @order_seller.count >= 10
@listing.update_column(:listing_status, 3)
end
end
Кажется, сейчас работает.Буду обновлять.