多态关联和设置资产的默认值

新手问题。 我有以下型号:

class Asset  true #paperclip has_attached_file :asset, :hash_secret => "my-secret", :url => "/images/:hash_:basename_:style.:extension", :path => UPLOAD_PATH + "/:hash_:basename_:style.:extension", :styles => { :medium => "300x300>", :thumb => "75x75>" } end class Location  :assetable, :dependent => :destroy end class MenuItem  :assetable end 

我的资产有一个叫做描述的属性。 如果assetable_type是“MenuItem”并且描述为nil,我希望描述是关联的menu_item的主体。 我该怎么办?

谢谢

 class Asset < ActiveRecord::Base before_save :set_description private def set_description self.description ||= assetable.body if assetable.is_a?(MenuItem) end end 

或者修改访问者

 def description return self[:description] unless self[:description].blank? assetable.description if assetable.is_a? MenuItem end