【发布时间】:2014-04-21 08:42:39
【问题描述】:
我有playlist entries 和episodes。每个播放列表条目都指向一个剧集。每集确实有一个持续时间(以秒为单位)。现在我想用工厂女孩创建一个播放列表条目。但是我必须从start_time 和duration of the episode 计算播放列表条目的end_time。我怎样才能做到这一点?我尝试使用此代码,但不起作用:
FactoryGirl.define do
factory :playlist_entry_episode, class: PlaylistEntry do
start_time Faker::Business.credit_card_expiry_date
episode
end_time {start_time + self.episode.duration}
premiere false
channel_playlist
end
end
如何访问因episode 关联而自动创建的剧集的持续时间?
当执行使用这个工厂的规范时,我得到NoMethodError: undefined method 'duration' for nil:NilClass。我认为这是因为 self.episode 是 nil。
这是episode的工厂:
FactoryGirl.define do
factory :episode do
title Faker::Lorem.paragraph(1)
link Faker::Internet.url
pub_date Faker::Business.credit_card_expiry_date
guid Faker::Lorem.characters(10)
subtitle Faker::Lorem.paragraph(1)
content Faker::Lorem.paragraph(5)
duration Faker::Number.number(6)
flattr_url Faker::Internet.url
tags Faker::Lorem.paragraph(1)
icon_url Faker::Internet.url
audio_file_url Faker::Internet.url
cached false
local_path ""
filesize Faker::Number.number(6)
podcast
end
end
【问题讨论】: