Looks like you should remove the collection on the orders and instead do something like this
post '/orders/get_barcode', as: :get_barcode, controller: :orders, action: :get_barcode
Since it sounds like you have a barcode which references a record in the Order model, you're not really going to be able to do a nested resource and have the collection on the Orders. Instead, you can create a manual path (as shown above) which goes to your orders#get_barcode action.
In the get_barcode action, you can look up the order and then get the ticket association.
It might look something like
def get_barcode
@ticket = Order.includes(:ticket).find_by(barcode: params[:upc]).ticket
end
This is assuming that a Ticket has_many Orders and an Order belongs_to a Ticket.
The previous example will generate two queries and could be a bit slower. You could get fancy with your query and also do something like this which will create an inner join
@ticket = Ticket.joins(:orders).where(orders: {barcode: params[:upc]})