Ruby on Rails Paperclip update_attributes не работает - PullRequest
0 голосов
/ 02 декабря 2011

Я использую скрепку для загрузки аватаров на моем сайте.

Проблема, с которой я сталкиваюсь, заключается в том, что когда я устанавливаю форму в значение remote => true аватар аккаунта не обновляется. Все остальные атрибуты обновляются, кроме аватара.

Хорошо работает, когда я просто использую редирект.

Я использую remotipart на моем сайте для удаленной загрузки изображений. Другие части моего сайта с загрузкой изображений через удаленные запросы работают нормально.

Я запутался в том, что я делаю неправильно.

Это то, что у меня есть для контроллера:

 def update
@account = Account.getAccountById(session[:user])
if @account.update_attributes(params[:account])

else

end
end

В виде:

 <% form_for @account, :html => {:multipart => true}, :remote => true do |f| %>

Ценю любую помощь.

Спасибо

Brian

Обновление

Я использую камень remotipart.

Когда я исправляю условный оператор, используя remotipart_submitted? всегда возвращает false.

Кроме того, если я проверю параметры [: account] [: avatar] .blank? с удаленным true всегда возвращает true.

Если я удалю remote => true, тогда params [: account] [: avatar] .blank? возвращает значение true или false, если поле файла имеет значение или нет.

Так что я запутался, почему remote => true не обнаруживает, что поле файла имеет значение.

1 Ответ

0 голосов
/ 02 декабря 2011

Проблема в том, что JavaScript не позволит вам загрузить файл через XHR, поскольку это считается угрозой безопасности. Чтобы обойти это, создайте iframe, скопируйте в него форму и отправьте ее в iframe.

Вы можете сделать это несколько автоматически, используя что-то вроде jquery.form.js

...