Я не могу заставить send_file (Model.attachment.path) работать. Он не терпит неудачу, вместо этого он отправляет клиенту файл размера 0 байтов, однако имена файлов верны.
Эта проблема возникла после большой миграции из Rails 2.3.8 в 3.
В этой миграции было много других вещей, и я попытаюсь изо всех сил детализировать их все.
- Изменение предложения/Изменение сервера. Rackspace RHEL5 - Linode Ubuntu 10.04LTS
- Изменение версии Ruby, 1.8.6 → 1.9.2
- Изменение версии Rails, 2.3.8 → 3.0.0
- Изменение платформы httpd, apache2 → nginx (Однако я также пробовал на apache2, и это не сработало).
Я переместил вложения через ftp, поскольку они не были частью моих репозиториев git, поэтому они были опубликованы с помощью командной оболочки, а вместо этого ручной ftp remote (RHEL5) на локальный (Win7), а затем локальный (Win7) на удаленный (Ubuntu10).
Я знаю, что FTP-передача не сохраняет права доступа к файлам через передачи, поэтому то, что я также сделал, имитирует chmods, которые были замечены на моих предыдущих серверах, поэтому они почти идентичны. (пользователи/группы разные, установите для root: root вместо olduser: olduser).
Отрывок запроса на загрузку вложения из моего журнала производства.
Started GET "/attachments/replies/1410?1277105698" for 218.102.140.205 at 2010-09-16 09:44:31 +0000
Processing by AttachmentsController#replies as HTML
Parameters: {"1277105698"=>nil, "id"=>"1410"}
Sent file /srv/app/releases/20100916094249/attachments/replies/UE0003-Requisition_For_Compensation_Leave.doc (0.2ms)
Completed 200 OK in 78ms
Все в порядке. Позвольте мне также исключить локальные проблемы, я попытался загрузить через Chrome на Win7 и Ubuntu (на Vbox).
Позвольте мне также заверить вас, что путь действительно правильный.
[email protected]:/srv/app/current# tail /srv/app/releases/20100916094249/attachments/replies/UE0003-Requisition_For_Compensation_Leave.doc
#
#
%17nw
HQ��+1ae����
%33333333333(��QR���HX�"%%��@9
��@�p4��#[email protected]��Unknown������������G��z �Times New Roman5��Symbol3&�
�z �Arial5&�
Итак, чтобы подвести итог, как мне получить send_file для фактической отправки файлов вместо поддельного байт-бана.