2013-08-27 2 views
3

:레일 - US-ASCII에 잘못된 바이트 시퀀스 나는이 모든 내 머리를 잃고

내 레일 서버가 확인을 시작하지만 어느 그것에 요청 (자산 및 공공 컨텐츠 제외)되어, 내가 할 이 오류 :이 프레임 워크 트레이스

ArgumentError in HomeController#index 

invalid byte sequence in US-ASCII 

(아무 응용 프로그램 추적)

better_errors (0.9.0) lib/better_errors/stack_frame.rb:19:in `from_exception' 
better_errors (0.9.0) lib/better_errors/error_page.rb:52:in `backtrace_frames' 
better_errors (0.9.0) lib/better_errors/middleware.rb:114:in `log_exception' 
better_errors (0.9.0) lib/better_errors/middleware.rb:87:in `rescue in protected_app_call' 
better_errors (0.9.0) lib/better_errors/middleware.rb:84:in `protected_app_call' 
better_errors (0.9.0) lib/better_errors/middleware.rb:79:in `better_errors_call' 
better_errors (0.9.0) lib/better_errors/middleware.rb:56:in `call' 
actionpack (3.2.13) lib/action_dispatch/middleware/debug_exceptions.rb:16:in `call' 
actionpack (3.2.13) lib/action_dispatch/middleware/show_exceptions.rb:56:in `call' 
railties (3.2.13) lib/rails/rack/logger.rb:32:in `call_app' 
railties (3.2.13) lib/rails/rack/logger.rb:16:in `block in call' 
activesupport (3.2.13) lib/active_support/tagged_logging.rb:22:in `tagged' 
railties (3.2.13) lib/rails/rack/logger.rb:16:in `call' 
actionpack (3.2.13) lib/action_dispatch/middleware/request_id.rb:22:in `call' 
rack (1.4.5) lib/rack/methodoverride.rb:21:in `call' 
rack (1.4.5) lib/rack/runtime.rb:17:in `call' 
activesupport (3.2.13) lib/active_support/cache/strategy/local_cache.rb:72:in `call' 
rack (1.4.5) lib/rack/lock.rb:15:in `call' 
actionpack (3.2.13) lib/action_dispatch/middleware/static.rb:63:in `call' 
railties (3.2.13) lib/rails/engine.rb:479:in `call' 
railties (3.2.13) lib/rails/application.rb:223:in `call' 
rack (1.4.5) lib/rack/content_length.rb:14:in `call' 
railties (3.2.13) lib/rails/rack/log_tailer.rb:17:in `call' 
rack (1.4.5) lib/rack/handler/webrick.rb:59:in `service' 
/home/augustin/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/webrick/httpserver.rb:138:in `service' 
/home/augustin/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/webrick/httpserver.rb:94:in `run' 
/home/augustin/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/webrick/server.rb:191:in `block in start_thread' 

우리 팀은 윈도우에서 작동하며 그들의 플랫폼에서 잘 작동하지만 버그가 우분투에서 내 컴퓨터에서 발생합니다. 모든 것이 잘 돌아 갔고, 최근 커밋으로 롤백하면 다시 작동하므로 오류가 병합됩니다.

질문은 다음과 같습니다

    정말 상세하지 이후
  • 가 어떻게이 문제를 디버깅 할 수 있습니다?
  • 오류는 실제로 무엇을 의미합니까? Ascii가 기대되는 것은 우리가 가지고있는 것이 아니고 ascii가 발견되었고 그것이 예상 한 것이 아닙니다.
  • 오류가 응용 프로그램 컨트롤러의 보석에있을 가능성이 더 높습니까?
  • 모든 특수 문자를 필터링하여 그 원산지를 알 수있는 방법이 있습니까?
  • 이것을 디버그하는 데 유용한 다른 정보는 무엇입니까?

읽기 :

첨부 :

Gemfile

desesperate 사람을 돕는개
source 'https://rubygems.org' 

gem 'rails', '3.2.13' 

# Bundle edge Rails instead: 
# gem 'rails', :git => 'git://github.com/rails/rails.git' 

# Database 
gem 'pg' 

# Database Init 
gem 'seed_dump' 
# gem "seedbank" 

# gem 'active_model_serializers' 

# HAML 
gem 'haml', '4.0.3' 
gem 'html2haml' 

# Front-end 
gem 'jquery-rails' 
gem 'bootstrap-sass', :git => 'git://github.com/thomas-mcdonald/bootstrap-sass.git', :branch => '3' 
# gem 'font-awesome-sass-rails' 
gem 'font-awesome-rails' 
gem 'bootstrap-datepicker-rails' 
gem 'jquery-tokeninput-rails' # tag and autocomplete for conversation 

# Shared mustache templates for rails 3. 
gem 'smt_rails' 

# Attachements 
gem 'paperclip', '3.4.2' 

# Share on Social Network 
gem 'social-share-button' 

# Jquery Upload File 
# gem "jquery.fileupload-rails" 
# Map 
gem 'mapbox-rails', :git => 'https://github.com/aug-riedinger/mapbox-rails.git' 
gem 'leaflet-markercluster-rails' 

# Authentication 
gem 'bcrypt-ruby', '3.0.1', :require => 'bcrypt' 
gem 'devise' 
gem 'omniauth' 
gem 'omniauth-facebook', "1.4.0" 
gem 'oauth2' 
gem 'fb_graph' 

# Gems used only for assets and not required 
# in production environments by default. 
group :assets do 
    gem 'sass-rails', '~> 3.2.3' 
    gem 'coffee-rails', '~> 3.2.1' 
    gem 'coffee-script-source', '1.5.0'  
    gem 'uglifier', '>= 1.0.3' 
end 

group :development, :test do 
    gem 'better_errors' 
    gem 'binding_of_caller' 
end 

platforms :ruby do 
    group :development, :test do 
    gem 'railroady' 
    end 
    group :production do 
    gem 'aws-sdk' 
    gem 'unicorn' 
    gem 'newrelic_rpm' 
    end 
end 

# Messaging - Notifications 
gem 'simple_form' 
gem 'mailboxer' 
gem 'pusher' 

gem 'amistad' 

# Pdf generation 
gem 'prawn' 
gem 'prawnto' 

# Payments 
gem 'activemerchant' 

# SEO 
gem 'dynamic_sitemaps' 
gem 'metamagic' 

# Static files 
gem 'markdown-rails' 

감사합니다 ...

+0

http : // www. railshorde.com/blog/invalid-byte-sequence-in-us-ascii – Animesh

답변

5

그래서, 나는 마침내마다 역사 (git log)에 커밋 체크 아웃으로 해결책을 발견, 테스트, 그리고 마지막으로 변경된 것을 확인하기 위해 git diff <commit_hash> <previous_commit_hash>을.

I했습니다 (분명히 모든 호출에로드) 도우미에서 비 ASCII 문자 :

#encoding: utf-8 
module GroupsHelper 
... 

그러나 I :

def group_currency(group) 
    currency = group.currency 
    case currency 
    when 'EUR' 
     haml_tag "€" 
    when 'USD' 
     haml_tag "$" 
    when 'GBP' 
     haml_tag "£" 
    end 

    end 

그래서 파일의 beggining에이를 추가하는 것은 그것을 해결 더 심판을 찾는 이유는 레일스가 문제를 제기하는 파일을 찾아 로그에 기록 할 수없는 이유입니다 ... 레일스에서이 문제를 만들었습니다 : https://github.com/rails/rails/issues/12041

+2

github 문제에서 배운 내용을 추가하겠습니다. ** 어떤 파일 **이 문제를 야기하는지 알아 내려면 프로덕션에서 레일을 실행하십시오 :'rails server -e production' 그리고 정확한 에러 메시지를 얻을 것입니다. – mrt

+0

테스트 환경이나 실행 중인지 확인해도됩니다. –

+0

불쾌한 문자가 무엇인지 잘 모르는 경우 다음 명령을 실행 해보십시오. '$ grep --color = 'auto'-P -n "[\ x80- \ xFF]"/ *' – Francois