2015-01-12 2 views
0

Я использую программу Paperclip в своем приложении Rails для обработки загрузок изображений. Однако по какой-то причине каждый раз, когда я пытаюсь создать экземпляр модели с прикрепленным изображением, я получаю ошибку Rails 500.Не удается загрузить изображения с помощью Rails и Paperclip

Странно, что перезагрузка приложения (через Upstart), а затем повторная отправка формы позволяет мне загружать изображения успешно, но, похоже, не «принимает»: любые последующие загрузки все равно дают мне ошибку 500.

Производственный журнал бесполезен и даже не показывает запрос POST, созданный для создания экземпляра.

Мой Upstart конфигурационный файл:

description 'site.com' 
author 'Daniel J. <>' 

start on [2345] 
stop on runlevel [016] 

env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 
env RAILS_ENV=production 
env SECRET_KEY_BASE='' 
env DEVISE_SECRET_KEY='' 
env POSTGRESQL_PASSWORD='' 

setuid www-data 
setgid www-data 

chdir /var/www/site/current 

pre-start exec bundle exec unicorn_rails -D -c /var/www/site/current/config/unicorn.rb --env production 
post-stop exec kill `cat /var/www/site/current/tmp/pids/unicorn.pid` 

Мой файл Nginx:

upstream app { 
    server 127.0.0.1:3000; 
} 

server { 
    listen    80    default; 
    server_name   site.com; 
    charset    utf-8; 
    client_max_body_size 75M; 
    root     /var/www/site/current/public; 

    location ~ ^/(assets)/ { 
     gzip_static on; 
     expires  max; 
     add_header Cache-Control public; 
    } 

    location/{ 
     try_files $uri/index.html $uri @app; 
     error_page 404 /404.html; 
     error_page 403 /403.html; 
     error_page 422 /422.html; 
     error_page 500 502 503 504 /500.html; 
    } 

    location = /favicon.ico { 
     expires max; 
     add_header Cache-Control public; 
    } 

    location @app { 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header Host $http_host; 
     proxy_redirect off; 
     proxy_pass http://app; 
    } 
} 

И мой Unicorn конфигурационный файл:

listen 3000 
worker_processes Integer(ENV['WEB_CONCURRENCY'] || 3) 
timeout 30 
preload_app true 
working_directory '/var/www/site/current' 
stderr_path 'log/unicorn-error.log' 
stdout_path 'log/unicorn-access.log' 

before_fork do |server, worker| 
    Signal.trap 'TERM' do 
    puts 'Unicorn master intercepting TERM and sending myself QUIT instead' 
    Process.kill 'QUIT', Process.pid 
    end 

    defined?(ActiveRecord::Base) and 
    ActiveRecord::Base.connection.disconnect! 
end 

after_fork do |server, worker| 
    Signal.trap 'TERM' do 
    puts 'Unicorn worker intercepting TERM and doing nothing. Wait for master to send QUIT.' 
    end 

    defined?(ActiveRecord::Base) and 
    ActiveRecord::Base.establish_connection 
end 

ответ

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