0

多型モデルとなる写真モデルがあります。親モデルを提出して保存する場合。写真がない場合、写真のdefault_urlを表示すると写真がないため何も表示されません。モデルに写真が添付されている場合(つまり、写真が1つしかない場合)、フィールドがnullの場合はdefault_urlが返されますが、結果がない場合はdefault_urlが返されません。 default_urlの問題を修正するためにnullレコードを入力したくない。Carrierwave - default_urlを使用した多態性

私は、私は、次のならば、それは、これが最良の

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

これは動作しますが、それはsloppy..iシンクタンクであることを確認DEFAULT_URLを返さなくなることを発見しました。誰でも良い考えがありますか?たぶん、写真のモデルや、何かがあるかどうかにかかわらず、有効なURLを持つオブジェクトを返すようなものを見つける方法があるかもしれません。

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 

は画像がない場合は、モデルがちょうど何かを返すように好むかである確信していません。