0

다형성 모델이 될 사진 모델이 있습니다. 부모 모델을 제출하고 저장하는 경우. 사진이 없으면 default_url 사진을 표시 할 때 사진이 없기 때문에 아무것도 표시되지 않습니다. 사진이 하나의 모델에 부착 된 경우, 필드가 null 인 경우 default_url을 반환하지만 결과가없는 경우 default_url을 반환하지 않습니다. default_url 문제를 해결하기 위해 null 레코드를 입력하고 싶지 않습니다.Carrierwave - default_url 문제가있는 다형성

내가 찾은이 내가 할 경우는 DEFAULT_URL를 반환하지만 확실하지 않은이 최고의

ImageUploader.new.default_url(:small) if @photos.blank? 

이 작동하지만 생각 sloppy..i이다 다음. 누구나 더 좋은 생각이 있습니까? 어쩌면 거기에 무언가가 있는지 여부와 상관없이 유효한 URL이있는 객체를 반환하는 사진 모델 또는 더 나은 무언가에 대한 find 메소드 일 수 있습니다.

class Photo < ActiveRecord::Base 
    # Concerns 
    include Guidable 

    default_scope :order => 'photos.order DESC' 

    belongs_to :attachable, :polymorphic => true  
    mount_uploader :image, ImageUploader 

    def attachable? 
    !!self.attachable 
    end 

end 

답변

0

난 내 자신의 질문에 대답하려고하지만 여전히 확신 아니에요은

module PhotosHelper 

    def photo_url(photo, size) 
    defined?(photo.image) ? photo.image.url(size) : ImageUploader.new.send(size).default_url 
    end 

end 

더 이미지가없는 경우 모델이 뭔가를 반환해야하는 것을 선호 최선의 선택입니다.