Объяснение откатов, когда не используется @ photo.valid? в Ruby on Rails - PullRequest
0 голосов
/ 12 июля 2009

При загрузке фотографий я получил противоречивые откаты в лог-файле. Я выбирал одно и то же изображение снова и снова, пока система не приняла его, после 3-й и 12-й попытки.

Это прекратилось после того, как я добавил photo.valid? до фото. сохранить.

Мой код использует attachment_fu, ниже вы можете увидеть код контроллера:

@album = @listing.album 
@p1 = params[:p1]    
if @p1[:uploaded_data] != ""
    @photo = @album.photos.build(params[:p1])
    @photo.valid?        
    if @photo.save   
      @album.photos << @photo                                                    
    end
end

Так что здесь с моим кодом? Зачем мне нужен действующий?

Заранее спасибо,

Michael

Edit: Файл журнала без действительного? дает откат:

[4;35;1mAlbum Load (0.0ms)[0m   [0mSELECT * FROM `albums` WHERE (`albums`.listing_id = 68) LIMIT 1[0m
[4;36;1mAlbum Columns (0.0ms)[0m   [0;1mSHOW FIELDS FROM `albums`[0m
[4;35;1mPhoto Columns (0.0ms)[0m   [0mSHOW FIELDS FROM `photos`[0m
[4;36;1mSQL (0.0ms)[0m   [0;1mBEGIN[0m
[4;35;1mSQL (0.0ms)[0m   [0mROLLBACK[0m
User did not upload a picture.
Rendering template within layouts/application
Rendering listings/images

Edit: Это можно решить с помощью подсказки Омарса:

logger.error @photo.errors.inspect

Я получаю @errors = {"size" => ["не включен в список"], что является источником проблемы.

Ответы [ 2 ]

0 голосов
/ 12 июля 2009

Изменить на

if @photo.save   
  @album.photos << @photo                                                    
else
  logger.error @photo.errors.inspect
end
0 голосов
/ 12 июля 2009

Можете ли вы показать нам файл журнала? AFAIK .save проверяет модель ... дважды.

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