我遇到問題追蹤爲什麼我的更新方法沒有得到所需的參數。我有一個類似的測試顯示和有效載荷工作。在這種情況下,有問題的路線是發票/ invoice_id/trip/id。如果您可以幫助我發現錯誤,並就如何在將來很好地解決這類問題提出任何建議。更新方法的參數數量錯誤(1代表2)
這是更新方法。
def update
if @trip.update(@trip.trip_id, trip_params)
head :no_content
else
render json: [@invoice, @trip].errors, status: :unprocessable_entity
end
end
使用以下私有方法。
private
def set_trip
@trip = Trip.where(:invoice_id => params[:invoice_id], :trip_id => params[:id])
end
def trip_params
params.require(:trip).permit(:trip_id, :depart_airport, :arrive_airport, :passenger_first_name, :passenger_last_name, :passenger_count, :departure_date, :merchant_id)
end
def load_invoice
@invoice = Invoice.find(params[:invoice_id])
end
end
我的失敗測試看起來像這樣。
test "should update trip" do
put :update, invoice_id: @invoice.invoice_id, id: @trip,
trip: {arrive_airport: @trip.arrive_airport,
depart_airport: @trip.depart_airport,
departure_date: @trip.departure_date,
passenger_count: @trip.passenger_count,
passenger_first_name: @trip.passenger_first_name,
passenger_last_name: @trip.passenger_last_name}
assert_response 204
end
只是爲了檢查,2是1還是1的錯誤2?你正在做從數據庫加載的記錄的任何模擬/存根? –