class Video < Rentable
has_many :video_genres
- has_many :medias
+ has_many :video_medias
validates_presence_of :director
- validates_presence_of :video_genre
- validates_presence_of :media
+ validates_presence_of :video_genre_id
+ validates_presence_of :video_media_id
+
+ def genre
+ VideoGenre.find_by_id(video_genre_id)
+ end
+
+ def media
+ VideoMedia.find_by_id(video_media_id)
+ end
def calculated_price
- # FIXME: generate this based on day of week, newrelease
day_of_week = Time.now.to_date.wday
base_fee = VideoPolicy.find_by_day(day_of_week).fee
end
def due_date
- # FIXME: generate this based on the day of week, newrelease
# NOTE: a Date.wday will tell you the day of week (0-6, meaning Sunday-Saturday)
day_of_week = Time.now.to_date.wday
base_period = VideoPolicy.find_by_day(day_of_week).period
protected
def validate
- errors.add(:video_genre, "does not exist in the database") if video_genre.nil?
- errors.add(:media, "does not exist in the database") if media.nil?
+ errors.add(:video_genre_id, "does not exist in the database") if genre.nil?
+ errors.add(:video_media_id, "does not exist in the database") if media.nil?
end
end