0

사용자가 두 개 이상의 제품 사진을 업로드 할 수있는 제품 페이지를 만듭니다. 제품을 만들고 편집하려면 양식 파일을 렌더링 중입니다. 사진을 업로드 할 때 제품 양식의 사진에 nested_fields를 사용했습니다. 레일 : 필드가 비어있는 경우 양식 제출 방지

has_many :photos, :as => :attachable, :dependent => :destroy 
accepts_nested_attributes_for :photos, :allow_destroy => true 

사용자가 제품을 만들어

, 내가 사진의 존재에 대해 유효성 검사를 사용하고, 제품 모델에

<%= f.fields_for :photos do |photo| %> 
    <%= image_tag photo.object.avatar.url(:thumb), unless f.object.new_record? or photo.object.new_record? %> 
    <%= photo.file_field :avatar, :style => "none" %> 
    <%= photo.link_to_remove "Remove"%> 
<% end %> 
<%= f.link_to_add 'Add Photos', :photos, "data-association-insertion-node"=> ".photos", "data-association-insertion-position" => "append", "data-type" => "link"%> 

: 여기 형태로 사진 코드처럼 보이는 방법이다. 따라서 사용자는 사진을 업로드해야합니다. 이 작품은 제대로 작동하고 있습니다. 사진 모델에서

:

validate :validates_account_avatar 

그러나 문제는 편집입니다. 사용자가 모든 사진을 삭제할 수 있습니다. 여기 나는 사용자가 모든 사진을 삭제하지 못하게하려고합니다.

편집 된 제품을 제출할 때 사진 필드를 비워 둘 수 없거나 최소한 하나의 사진이 있어야 함을 사용자에게 알리는 방법.

accepts_nested_attributes_for :photos, :allow_destroy => true, :reject_if => lambda { |a| a[:avatar].blank? } 

하지만 사용 :

나는 이것을 사용하려고 노력했다.

도움말!

답변

관련 문제