class Photo < ActiveRecord::Base
belongs_to :attachable, :polymorphic => true, :counter_cache => true
has_attached_file :data,
:styles => {
:ppc_full => "500x375>",
:ppc_preview => "250x250",
:ppc_thumb => "76x76#",
:default_url => "shop/:style.jpg"
}
end
class Shop < ActiveRecord::Base
has_many :photos, :as => :attachable, :dependent => :destroy
end
当我这样做时,我希望在没有相关照片时返回默认照片:
image_tag(@shop.photos.last.data.url(:ppc_preview))
但它给了我这个错误:
undefined method `data' for nil:NilClass
我让其他人工作正常,但不是这个。
答案 0 :(得分:0)
您可以使用视图帮助程序解决此问题:
def show_img_for shop
unless shop.images.blank?
image_tag(shop.photos.last.data.url(:ppc_preview))
else
image_tag('/path/to/default/img.png', :alt => 'derp')
end
end
在app / helpers / shop_helper.rb中的恭维,然后在你的视图中调用它在商店中传递它应该做的伎俩。您也可以将其作为模型函数进行处理,但由于它实际上是与视图相关的问题,因此帮助程序可能是最合适的解决方案。