Я использую Pow и Nginx для обслуживания моего приложения Rails 4 в разработке. Простая загрузка файла возвращает ошибку 500, и запрос не достигает контроллера Rails. Я предполагаю, что это так, потому что в журнале Rails нет упоминания о запросе. Без какого-либо упоминания об ошибке я не уверен, что здесь происходит не так.
Я начал с загрузки файла Ajax, но заменил его простой формой, которая также не работает.
Пробовал это
а потом пошел к этому
Текущий avatar.html.erb
<%= form_for @user, html: { multipart: true }, method: "post", url: '/settings/avatar/update', class: "", id: "update_avatar" do |f| %>
<%= f.file_field :avatar, class: 'js-upload-photo-button js-change-avatar-btn', accept: 'image/png,image/gif,image/jpeg,image/jpg' %>
<%= f.submit "Upload" %>
<% end %>
Заголовки запросов в Chrome
Раздел расширенных заголовков запроса
nginx.log
127.0.0.1 - - [01/Feb/2014:11:28:26 +0530] "POST /settings/avatar/update HTTP/1.1" 500 643 "https://allotrop.dev/settings/avatar" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36"
pow access.log
[Sat Feb 01 2014 11:28:26 GMT+0530 (IST)] INFO [127.0.0.1] GET allotrop.dev /500.html
Здесь есть и другие вопросы о том, что Rails возвращает ошибку 500 без упоминания в журнале. нет записи в производственном журнале , Rails 3.2.13, ошибка 500 в разработке без журнала и Как правильно диагностировать ошибку 500 (Rails, Passenger, Nginx, Postgres)
Но это разовые ошибки, и они, похоже, не связаны с проблемой, с которой я столкнулся. Было бы здорово, если бы кто-нибудь мог указать мне в правильном направлении.
Обновление 1
Соответствующая строка из route.rb
post '/settings/avatar/update', to: 'settings#update_avatar'
Обновление 2
Нашел свой журнал ошибок nginx. Кстати, если вы используете Homebrew, это /usr/local/Cellar/nginx/1.4.0/logs/error.log
nginx/error.log
2014/02/01 13:05:54 [crit] 8787#0: *85813 open() "/usr/local/var/run/nginx/client_body_temp/0000000010" failed (13: Permission denied), client: 127.0.0.1, server: *.dev, request: "POST /settings/avatar/update HTTP/1.1", host: "allotrop.dev", referrer: "https://allotrop.dev/settings/avatar"
Patch
не помогает. Я добавил соответствующий маршрут в вопрос. - person rohitmishra   schedule 01.02.2014