Ruby 1.9.2 + valums + rawfileupload = нет сделки - PullRequest
0 голосов
/ 23 октября 2011

До обновления моего Macbook я использовал Ruby 1.8.7 и Rails 3.0.9, мое приложение работало очень хорошо.

UPD: на самом деле проблема была в другом, см. Ответ ниже.

Теперь у меня такие же Rails (как и в Gemfile), но версия Ruby 1.9.2, и у меня есть некоторые проблемы с ней. Так что одним из них является то, что я потерял возможность загружать файлы через AJAX-загрузчик valums и rawfileupload. Кажется понятным, все данные передаются через:

{"photo"=>{
  "image"=>#<ActionDispatch::Http::UploadedFile:0x007fd47fe5df20 
     @original_filename="appleberry.jpg", @content_type="image/jpeg", @headers=nil, 
     @tempfile=#<File:blah-blah a real file, i can see it>}, 
  "album_id"=>"6", 
  "authenticity_token"=>"<is ok>=", "qqfile"=>"appleberry.jpg"
}

Но тогда я получаю следующую вставку SQL:

INSERT INTO "photos" (
  "name", "description", 
  "created_at", "updated_at", 
  "album_id", "image_file_name", 
  "image_content_type", "image_file_size", 
  "image_updated_at", "created_by") 
VALUES (NULL, NULL, 
  '2011-10-23 19:08:18.746030', '2011-10-23 19:08:18.746030', 
  6, NULL, 
  NULL, NULL, 
  NULL, NULL)

Это не может быть контроллер, потому что он сверхпростой

@photo = Photo.new(params[:image])
@photo.album_id = params[:album_id]

if @photo.save
   ...

Это неприятная проблема, я даже пытался понизить ее до ruby 1.8.7, так как я использую rvm, но у меня ее пока нет. Если лучше всего использовать 1.8.7, я сделаю это, но, пожалуйста, расскажите мне, как =)

Спасибо!

1 Ответ

0 голосов
/ 19 ноября 2011

Это была моя ошибка, как я узнал.В рельсах у меня было неправильное объявление Photo.new (), я использовал params[:image], но это должно было быть params[:photo].И именно поэтому я получил много NULLs в запросе.

Просто помните об этом в следующий раз, сохраняя изображения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...