3

私はこのような製品モデルを持っています:

class Product < ActiveRecord::Base
 has_many :images, :class_name => 'ProductImage', :order => 'position DESC', :dependent => :destroy

def image_thumb
    images.first.image.thumb.url
  end

  def image
    images.first.image.url
  end
end

製品画像モデル:

class ProductImage < ActiveRecord::Base
  attr_accessible :image, :position, :product_id, :title

  belongs_to :product

  default_scope order('position ASC')

  mount_uploader :image, ProductImageUploader
end

アップローダ モデル:

class ProductImageUploader < CarrierWave::Uploader::Base
...
 def default_url
  asset_path([version_name, "default.jpg"].compact.join('_'))
 end
end

しかし、製品の画像をアップロードしないと、image_thumb および image メソッドで「nil」が返されます。画像がアップロードされておらず、Product モデルと ProductImage モデルの関係が 1 対多の場合、default_url を取得するにはどうすればよいですか?

4

2 に答える 2

0

default_url に取得している値は何ですか?

パスが正しく評価されていない可能性があります。

このようなことを試してください(もちろん、以下のパスを正しいものに修正してください):

class ProductImageUploader < CarrierWave::Uploader::Base
   ...

   def default_url
      "/assets/" + [version_name, "default.jpg"].compact.join('_')
   end
end
于 2013-04-14T08:33:46.097 に答える