This repository has been archived on 2020-05-27. You can view files and clone it, but cannot push or open issues/pull-requests.
barleysodas/app/models/beer.rb

39 lines
953 B
Ruby

##
# This model will represent a beverage produced by a Brewery.
#
class Beer < ActiveRecord::Base
belongs_to :brewery
has_one :page, :foreign_key => 'owner_id', :dependent => :destroy,
:conditions => "pages.owner_type = 'Beer'"
before_save :ensure_page_valid
after_save :save_page
protected
##
# This model always has a Page associated. Save it before this model to make
# sure that everything is kosher with the name and whatnot.
#
def save_page
page.save
end
##
# This will let the Page model keep track of names being unique and all.
# Might be nil, so let the after_save hook create it.
#
def ensure_page_valid
if page.nil?
self.errors.add(:page, "is missing")
else
page.owner = self
page.title = self.title
page.errors.each do |key, val|
self.errors.add(key, val)
end if !page.valid?
end
return false if self.errors.size > 0
true
end
end