私はここで迷っています。私はかなりシンプルなことをやっているが、これで多くの問題に遭遇しているようだ。私は作品の中でまっすぐ前方のWebクローラーを持っています。人々はリクエストを投稿し、キューに送信します。彼らはキューにいただきまし照会する場合は、次のルートはスタックが深くなるまで応答するRubyアプリ
127.0.0.1:8080/requests/id/1.json
応答が(DEF) CrawlerControllerがコントローラであるアクションです。 リクエストがモデルです。相続人
ルート:
match 'requests/id/:id' => 'crawler#response'
そして、ここでコントローラ内のデフです(私はその関連はないと思うが):
def response
@request = Request.find(params[:id])
respond_to do |format|
#format.html { render :action => "new"}
format.json { render :json => @request.to_json }
end
end
私は取得していますエラーがスタックレベルでは、深すぎる。
EDIT:私は、コンソール出力を見れば線21と19が行うと
CACHE (0.0ms) SELECT "requests".* FROM "requests" WHERE "requests"."id" = 1 LIMIT 1
CACHE (0.0ms) SELECT "requests".* FROM "requests" WHERE "requests"."id" = 1 LIMIT 1
CACHE (0.0ms) SELECT "requests".* FROM "requests" WHERE "requests"."id" = 1 LIMIT 1
CACHE (0.0ms) SELECT "requests".* FROM "requests" WHERE "requests"."id" = 1 LIMIT 1
CACHE (0.0ms) SELECT "requests".* FROM "requests" WHERE "requests"."id" = 1 LIMIT 1
CACHE (0.0ms) SELECT "requests".* FROM "requests" WHERE "requests"."id" = 1 LIMIT 1
CACHE (0.0ms) SELECT "requests".* FROM "requests" WHERE "requests"."id" = 1 LIMIT 1
CACHE (0.0ms) SELECT "requests".* FROM "requests" WHERE "requests"."id" = 1 LIMIT 1
CACHE (0.0ms) SELECT "requests".* FROM "requests" WHERE "requests"."id" = 1 LIMIT 1
CACHE (0.0ms) SELECT "requests".* FROM "requests" WHERE "requests"."id" = 1 LIMIT 1
Completed 500 Internal Server Error in 2688ms
SystemStackError (stack level too deep):
app/controllers/crawler_controller.rb:21:in `response'
app/controllers/crawler_controller.rb:19:in `response'
app/controllers/crawler_controller.rb:21:in `response'
app/controllers/crawler_controller.rb:19:in `response'
app/controllers/crawler_controller.rb:21:in `response'
app/controllers/crawler_controller.rb:19:in `response'
かなり奇妙なハァッformat.jsonする@respondですか?
これが別の行方不明の終了ブロックであることが判明したら私は誓います。*握りこぶし* – overtone