class Page < Item field :content field :design_name validates_presence_of :design_name, :design_id belongs_to :design has_many :page_parts def create_parts page_design = self.get_design page_design.layout.layout_parts.each do |p| self.page_parts.create( :name => p.name, :i18n_variable_id => I18nVariable.create.id, :kind => 'text' ) if p['editable'] end end # Destroy the page_parts def destroy_page_parts self.page_parts.each do |part| part.destroy_i18n_variable part.destroy end end def get_design Design.find(design_id) end protected def setup_default_value super if self.design_id self.design_name = get_design.title end end end