2009-07-12 3 views
0

사진을 업로드 할 때 로그 파일에 일관성없는 롤백이 있습니다. 나는 3 ~ 12 번째 시도 후에 시스템이 그것을 수용 할 때까지 동일한 그림을 반복해서 선택했다.@ photo.valid를 사용하지 않을 때의 롤백에 대한 설명? Ruby on Rails에서

photo.valid를 추가하면 중지되었습니다. photo.save 전. 무슨 잘못 여기 내 코드 그래서

@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 

:

내 코드는 컨트롤러 코드를 볼 수 아래 attachment_fu를 사용? 왜 나는 유효한가 필요합니까?

마이클에게 사전에

편집을 주셔서 감사합니다 : 유효하지 않고 로그 파일? 롤백을 준다 :

[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 

편집 : 이 Omars 팁하여 해결 될 수있다 :

logger.error @photo.errors.inspect 

를 I 얻을 @errors = { "크기"=> [ "리스트에 포함되지 않은"] 이것이 문제의 근원입니다.

+0

, 코드 현명한 당신이 @의 P1을 대체 할 수 있습니다에 = ""와 @ P1 [: uploaded_data] .blank? –

+0

예, 감사합니다. 나는 그것을 바꿨다, 공백을 사용하지 않았 느냐? 지금까지. –

답변

0

변경

또한
if @photo.save 
    @album.photos << @photo              
else 
    logger.error @photo.errors.inspect 
end 
+0

대답은 무엇입니까? –

+0

아, 죄송합니다, 무시하고, 질문을 다시 읽으십시오. edit –

0

로그 파일을 표시 할 수 있습니까? AFAIK. save는 모델을 두 번 유효성을 검사합니다. [: uploaded_data]!

관련 문제