2013-10-28 1 views
0

레일 클립 앱에서 이미지 업로드를 처리하기 위해 클립을 사용하고 있습니다. 모두는 File Storage를 사용하여 개발 환경에서 로컬로 잘 작동합니다.S3가있는 heroku의 클립 -

지금은 (응용 프로그램이 Heroku에서 실행되기 때문에) S3를 사용하여이 작업을 수행하려고합니다. 여기의 지시에 따라 적절한 development.rb의 매개 변수와 production.rb를 양동이를 설정하고 설정 한 : https://devcenter.heroku.com/articles/paperclip-s3

내가 서버를 시작할 때, 나는 다음과 같은 오류 얻을 :

/Users/ganzogo/.rvm/gems/ruby-1.9.3-p362/gems/railties-3.2.13/lib/rails/railtie/configuration.rb:85:in `method_missing': undefined method `paperclip' for #<Rails::Application::Configuration:0x007fcb8b952000> (NoMethodError) 
    from /Users/ganzogo/Documents/acknowledgement/true-rails/config/environments/development.rb:41:in `block in <top (required)>' 

을 그리고 그런 다음 충돌합니다. 오류에 언급 된

라인입니다 : 내가 Heroku가 실행하려고하면

config.paperclip.defaults = { 
    :storage => :s3, 
    :s3_credentials => { 
    :bucket => ENV['S3_BUCKET_NAME'], 
    :access_key_id => ENV['AWS_ACCESS_KEY_ID'], 
    :secret_access_key => ENV['AWS_SECRET_ACCESS_KEY'] 
    } 
} 

나는 정확히 같은 오류가 발생합니다. 아무도 이것을 통해 있었고, 내가 놓친 것을 생각하지 못했습니까?

+0

http://jaysonlane.net/tech-blog/2012/04/rails-heroku-image-attachments-using-paperclip-and-s3/ this 사용 – LHH

+0

해당 게시물의 차이점은 'aws 'aws-sdk'대신 -s3 'gem을 사용하면 AWS 자격 증명을 .yml 파일에 저장하고 모델 자체를 수정하여 저장 방법을 참조합니다. 나는 그 모든 변화를 만들었고 나는 여전히 같은 오류를 겪고있다. – ganzogo

답변

3

당신이 당신의 구성 블록에 오타가있을 수 있습니다처럼 보이는 . config.paperclip.defaults = {...}config.paperclip_defaults = {...}으로 변경하면 문제가 해결 될 것입니다.

0

우리의 차이는 모델 자체에 자격 증명을 둘 필요가 우리의 라이브 애플리케이션

중 하나에이 작업을 얻었다. 여기에 우리가 가지고있는 작업은 다음과 같습니다


#app/models/image.rb 
#Image Upload 
     Paperclip.options[:command_path] = 'C:\RailsInstaller\ImageMagick' 
     has_attached_file :image, 
       :styles => { :medium => "x300", :thumb => "x100" }, 
       :default_url => "*******", 
       :storage => :s3, 
       :bucket => '******', 
       :s3_credentials => S3_CREDENTIALS 


#app/config/application.rb 
config.paperclip_defaults = { 
      :storage => :s3, 
      :s3_host_name => 's3-eu-west-1.amazonaws.com' 
    } 

는 Heroku가, 당신이 당신의 구성 설정으로 다양한 환경 변수를 추가해야합니다