2012-07-31 1 views
0

나는 socialstream이라는 보석의 최신 코드베이스를 가져 왔지만 Windows 컴퓨터에서 파일 업로드와 관련된 문제를 발견했습니다. 이 문제는 다음과 같이이 레일 방법 - 창 호환 방법?

# Monkey patches to Ruby on Rails 
# 
# Use unix file util to prove the content type sent by the browser 
class ActionDispatch::Http::UploadedFile 
    def initialize_with_magic(*args, &block) 
    initialize_without_magic(*args, &block) 

    if (unix_file = `which file`.chomp).present? && File.exists?(unix_file) 
     `#{ unix_file } -v 2>&1` =~ /^file-(.*)$/ 
     version = $1 

     @content_type = 
     if version >= "4.24" 
      `#{ unix_file } -b --mime-type #{ @tempfile.path }`.chomp 
     else 
      `#{ unix_file } -bi #{ @tempfile.path }`.chomp =~ /(\w*\/[\w+-\.]*)/ 
      $1 
     end 
    end 
    end 

    alias_method_chain :initialize, :magic 
end 

오류가

NoMethodError (정의되지 않은 메서드 chomp' for nil:NilClass): social_stream-base (0.22.0) lib/rails/social_stream.rb:8:in initialize_with_magic ' actionpack (3.2.5) lib 디렉토리/action_dispatch/HTTP /입니다 ... 아래의 코드를 것 같다 (3.2.5) lib/action_dispatch/http/parameters.rb : 73 : block in normalize_parameters' actionpack (3.2.5) lib/action_dispatch/http/parameters.rb:73:in 각 actionpack (3.2.5)에서 upload.rb : 39 : new' actionpack (3.2.5) lib/action_dispatch/http/upload.rb:39:in normalize_parameters ' actionpack 73 : normalize_parameters' actionpack (3.2.5) lib/action_dispatch/http/upload.rb:41:in에서 normalize_parameters ' actionpack (3.2.5) LIB/action_dispatch/HTTP/parameters.rb : 73 : block in normalize_parameters' actionpack (3.2.5) lib/action_dispatch/http/parameters.rb:73:in 각 ' actionpack (3.2.5) LIB/action_dispatch/HTTP/parameters.rb : 73에 normalize_parameters' actionpack (3.2.5) lib/action_dispatch/http/upload.rb:41:in normalize_parameters'

보석을 사용하거나 창문에 설치하거나 파일을 다시 쓸 수있는 방법으로 창에서이 작업을 수행 할 수 있습니까?

답변

1

중 하나를 삭제하거나 라인 주석 :

alias_method_chain :initialize, :magic 

이것은 : HTTP : UploadFile로 # 이것은 또한 당신이 자사의 혜택을받지 않습니다 의미

초기화 ActionDispatch에 접선을 중지됩니다 "증명"콘텐츠 유형,하지만 정말 귀하의 응용 프로그램에 필요한지 모르겠다.

+0

+1 감사합니다. 작동하는 것처럼 보입니다. – HelloWorld