aboutsummaryrefslogblamecommitdiffstats
path: root/activerecord/test/models/topic.rb
blob: 17e91e4b13d68010fc6ac40c53d45497299693dc (plain) (tree)
1
2
3
4
5
6
7
8
9
                                
                                                                        
                    
 
                                    
                                  

            
                         
     
 



                                                         
 
 
           




                                     






                                                                        






                                                   
class Topic < ActiveRecord::Base
  has_many :replies, :dependent => :destroy, :foreign_key => "parent_id"
  serialize :content

  before_create  :default_written_on
  before_destroy :destroy_children

  def parent
    Topic.find(parent_id)
  end

  # trivial method for testing Array#to_xml with :methods
  def topic_id
    id
  end


  protected
    def approved=(val)
      @custom_approved = val
      write_attribute(:approved, val)
    end

    def default_written_on
      self.written_on = Time.now unless attribute_present?("written_on")
    end

    def destroy_children
      self.class.delete_all "parent_id = #{id}"
    end

    def after_initialize
      if self.new_record?
        self.author_email_address = 'test@test.com'
      end
    end
end