2010-02-06 4 views
1

rails plugin paperclip 같은 모델에서 유효성 검사를 지원합니다 .레일 종이 클립 플러그인되는 검증

다음과 같은 조건을 확인하는 경우 : 존재하지 않을 경우 유효성 검사를 무시할 수 있습니까? (사용자가 첨부 된 문서없이 부모 개체를 제출했음을 의미). 내가 가지고있는 note.rb 파일, 그래서 참고 :

has_attached_file :document 

RDocs : dev.thoughtbot.com/paperclip/

답변

0

당신은을 추가 할 수

validates_attachment_size :document, :less_than => 5.megabytes, :if => ??? 

부모 개체는이다 :allow_nil => true 옵션은 첨부 파일이없는 경우 유효성 검사를 건너 뜁니다.

+0

이 작동하지 않습니다. 추가 후 : validates_attachment_size : 문서 : less_than => 5. 메가 바이트, : allow_nil => true 메모는 데이터베이스에 저장되지 않습니다. 내 노트 컨트롤러에서 나는 if 문을 가지고 @ note.save, 좋은 일을하고, 그렇지 않으면 다시 플래시 오류 페이지로 리디렉션. 매번 리디렉션됩니다. @ note.save가 올바르게 실행되지 않습니다. 필자는 클립 클립 검증을 주석 처리하면 모든 것이 정상적으로 작동하므로 노트를 저장하지 않을 수있는 다른 검증은 없습니다. – Steve

+0

로그에는 클립에 특유한 것이 모두 표시되지 않습니다 (dissapointing). 업데이트 : 다음을 확인하십시오. http://github.com/thoughtbot/paperclip/issues/issue/134 – Steve

2

첨부 파일의 이름이 인 아바타이라고 가정하고 유효성 확인 문 뒤에 :if => lambda { avatar.dirty? }을 전달할 수 있습니다. 예를 들어 파일 이름에 대한

validates_attachment_size :avatar, :less_than => 500.kilobytes, :if => lambda { avatar.dirty? }

0

확인합니다.

validates_attachment_size :document, :less_than => 5.megabytes, :if => !self.document_file_name.nil?