This removes the N+1 queries caused by
`Api::Admin::OrderSerialier#ready_to_capture` when used from
`Api::OrdersController#index`. While it's fine for the single-order
controller actions, it's not for this one that deals with a collection
of orders.
Fortunately, `SearchOrders` is used only in this controller action so we
can put the `includes` calls there, otherwise, we would need to refactor
it a bit to pass in a context-specific AR relation.
ActionController doesn't accept nil values for :id as a valid route request in Rails 4.
Fixes:
2) Api::OrdersController#show Resource not found when no order number is given
Failure/Error: get :show, id: nil
ActionController::UrlGenerationError:
No route matches {:action=>"show", :controller=>"api/orders", :id=>nil}
# ./spec/controllers/api/orders_controller_spec.rb:168:in `block (4 levels) in <module:Api>'
The original setup of the order calls:
create(:simple_order_cycle)
Which picks an arbitrary distributor as coordinator:
coordinator { Enterprise.is_distributor.first || ... }
There is a chance that any of the existing distributor enterprises
becomes coordinator, causing a test to intermittently fail.
This commit makes the relationship between the reference enterprises and
the order consistent.