2014-09-17 2 views
1

요청을 성공적으로 처리하지만 충돌을 일으키고 데이터를 반환하지 않는 Rails 개발 서버에 문제가 있습니다. Chrome에 No Data Received 페이지가 표시되고 다른 브라우저에는 해당 데이터가 표시됩니다. 콘솔에서 나는 다음과 같은 것을 볼 수있다 :Rails 개발 서버 상태 헤더는 심볼입니다.

Rendered layouts/_confirm_nag.html.erb (0.2ms) 
    Rendered layouts/_modals.html.erb (0.0ms) 
Completed 200 OK in 1219ms (Views: 26.8ms | ActiveRecord: 90.5ms) 
[2014-09-17 14:32:45] ERROR NoMethodError: undefined method `gsub' for :status:Symbol 
    /Users/jaime/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/webrick/httpresponse.rb:288:in `block in send_header' 
    /Users/jaime/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/webrick/httpresponse.rb:287:in `each' 
    /Users/jaime/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/webrick/httpresponse.rb:287:in `send_header' 
    /Users/jaime/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/webrick/httpresponse.rb:207:in `send_response' 
    /Users/jaime/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/webrick/httpserver.rb:110:in `run' 
    /Users/jaime/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/webrick/server.rb:295:in `block in start_thread' 

이상하게도 나는 하나의 특별한 요구에 대해서만 이것을보고, 다른 모든 페이지는 완벽하게 잘 동작한다. 내가 httpresponse.rb에 byebug을 넣었을 때

답변

1

내가 본 : 문제는 여기이었다

# Check if the transaction saved 
if @transaction.errors.any? 
    response[:status] = 'Error' 
    response[:message] = @transaction.errors.full_messages.join(', ') 
    return response 
end 

: 그 오류 메시지에 의해

(byebug) @header 
{"x-frame-options"=>"SAMEORIGIN", "x-xss-protection"=>"1; mode=block","x-content-type-options"=>"nosniff", 
:status=>"Error", :message=>"Subtotal can't be blank, Subtotal is not a number, Shipping cost can't be blank, Shipping cost is not a number, Processing fee can't be blank, Processing fee is not a number, Tax can't be blank, Tax is not a number, Total can't be blank, Total is not a number", 
"content-type"=>"text/html; charset=utf-8", "etag"=>"\"b589f2660cd40fecdac593916c837f67\"", "cache-control"=>"max-age=0, private, must-revalidate", "x-request-id"=>"6075ecb6-5f9f-4243-b600-f934a1f436fd", "x-runtime"=>"6.469675", "server"=>"WEBrick/1.3.1 (Ruby/2.1.1/2014-02-24)", "date"=>"Wed, 17 Sep 2014 18:47:26 GMT", "content-length"=>14914, "connection"=>"Keep-Alive"} 

,이 블록을 추적 할 수 있었다 나는 그것을 정의하지 않고 해시라는 응답을 사용하려고 했으므로 대신 전역 변수를 망쳐 놓았습니다.