SQLクエリを実行しているメソッドのテストを書いています。このプロジェクトでは、JSONの応答が必要です。私のテストは、クエリが予想される応答数を返すことを確認することです。私はオブジェクトが配列の代わりにJSONであるのでロードブロックを実行しました。 JSONをARRAYに変換するにはどうすればよいですか?JSONとRailsの配列を解析する
test "works" do
report = get :method
assert_equal 1, report.count
end
NoMethodError: undefined method `count'...
私はarray_report = ActiveSupport::JSON.decode(report)
を追加しようとしましたが、私は、次のエラーメッセージが表示されます。
TypeError: no implicit conversion of ActionController::TestResponse into String
JSONを正しく解析するにはどうすればよいですか?
EDIT
def method
sql = "SELECT MIN(departure_date), ch_invoice.invoice_id
FROM ch_invoice
INNER JOIN ch_trip
ON ch_invoice.invoice_id = ch_trip.invoice_id
WHERE departure_date < SYSDATE
AND service_rendered = 0
AND paid = 1
Group By ch_invoice.invoice_id"
report = ActiveRecord::Base.connection.exec_query(sql)
render json: report
end
EDIT 2
サンプルJSON.parseコード。これが私に与える質問です。
{"min(departure_date)"=>"2015-03-01T00:00:00.000Z", "invoice_id"=>"123catfood"}
{"min(departure_date)"=>"2015-01-01T00:00:00.000Z", "invoice_id"=>"123dogfood"}
これは、クエリの各セルの数を私に与えています。だから、 "Bugs" "Bunny"は、私がそれをデータの1行にしたいときは2です。これを修正する方法に関する考え? – CheeseFry
例を投稿できますかJSON.parse(response.body)は、私たちが作業しているものを見ることができるようになっていますか? – matt721
あなたのコードは正しいです。私はちょうど私が間違ったことを打つことを認識した。私は私の工場から私のサンプルデータをヒットすることを期待していましたが、私は実際に私のDBに突き抜けて、データを引っ張っています。それはブエノです。 – CheeseFry