我有一個應用程序使用becomes
方法將對象轉換爲另一個對象。編碼資產應該變爲EncodedImage
,但它沒有正確保存並且EncodedImage
陣列保持空白。雖然看起來好像是保存它,但實際上並沒有將這些數據存儲在EncodedImage
對象中。 我有以下代碼:Rails 4「成爲」問題
class EncodedAsset < Asset
serialize :files
serialize :linked_files
serialize :linked_files_cache
belongs_to :video, :foreign_key => :asset_id
scope :ordered, -> { order("extname ASC, bitrate ASC") }
scope :mp4s, -> { where(:extname => '.mp4')}
scope :m3u8s, -> { where(:extname => '.m3u8')}
validates_presence_of :asset_id
before_create :set_type
def get_url(file)
Saas::Config.primary_s3_bucket_url + file
end
protected
def set_type
case profile_name
when 'thumbnail'
self.becomes(EncodedImage)
else
self.becomes(EncodedVideo)
end
end
def is_hls?
extname.include?('.m3u8')
end
end
的EncodedAsset類型保持EncodedAsset時一旦縮略圖上傳它應該成爲EncodedImage。
我在做什麼錯?
self.becomes(EncodedImage)應該返回EncodedImage的一個實例和當前的EncodedAsset的屬性......我不認爲它實際上會將當前的EncodedAsset變成一個EncodedImage ......我真的不用,所以我不清楚它的用法 – user3334690
你不能像對待你想的那樣在對象類中進行變異。你只能根據這個返回一個不同的對象。 –