2014-09-17 2 views
1

У меня возникла проблема с сервером разработки Rails, где он успешно обработает запрос, но затем сбой и возврат данных не будут. Chrome показывает страницу с данными без данных, а другие браузеры показывают эквивалент. В консоли я вижу что-то вроде:Заголовок состояния сервера разработки 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' 

Как ни странно, я вижу только это на одном конкретном запросе, каждая страница отлично работает.

ответ

1

Когда я положил byebug в httpresponse.rb я видел:

(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"} 

Теми сообщения об ошибках, я был в состоянии отслеживать его к этому блоку:

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

Вопрос здесь было то, что Я пытался использовать хэш-ответ с именем без его определения, поэтому вместо этого я столкнулся с глобальной переменной.

Смежные вопросы