먼저 form_for에 check_box를 만들면 (당신처럼 보이는), 양식은 기본적으로 : image_delete를 선택하면 "1"로, 선택하지 않으면 "0"을 보내야합니다. 메서드 선언은 다음과 같습니다.
def check_box(method, options = {}, checked_value = "1", unchecked_value = "0")
원하는 경우 다른 값을 할당 할 수 있음을 보여 주지만 물론 선택 사항입니다.
둘째, 첨부 파일이 첨부 된 모델 인스턴스를 삭제하지 않고 첨부 파일을 수동으로 삭제하는 호출은 다음과 같습니다.
@page.image.destroy
@page.image.clear
확인란을 통해 이미지를 삭제하는 방법을 수행하려면 페이지 모델에 다음과 같은 내용을 추가 할 수 있습니다.
class Page < ActiveRecord::Base
has_attached_file :image
before_save :destroy_image?
def image_delete
@image_delete ||= "0"
end
def image_delete=(value)
@image_delete = value
end
private
def destroy_image?
self.image.clear if @image_delete == "1"
end
end
이렇게하면 양식을 만들고 : image_delete 확인란을 추가 할 때 User 인스턴스에서 기본값 "0"이로드됩니다. 해당 필드가 선택되면 컨트롤러는 image_delete를 "1"로 업데이트하고 사용자가 저장 될 때 이미지를 삭제할 것인지 확인합니다.
has_attached_file
는 image라는 이름의 첨부 파일이있는 다른 모델을 참조 합니까?