topic.rb 761 字节
Newer Older
D
Initial  
David Heinemeier Hansson 已提交
1
class Topic < ActiveRecord::Base
2
  has_many :replies, :dependent => :destroy, :foreign_key => "parent_id"
D
Initial  
David Heinemeier Hansson 已提交
3
  serialize :content
J
Jeremy Kemper 已提交
4

D
Initial  
David Heinemeier Hansson 已提交
5
  before_create  :default_written_on
6
  before_destroy :destroy_children
D
Initial  
David Heinemeier Hansson 已提交
7 8

  def parent
9
    Topic.find(parent_id)
D
Initial  
David Heinemeier Hansson 已提交
10
  end
J
Jeremy Kemper 已提交
11

12 13 14 15
  # trivial method for testing Array#to_xml with :methods
  def topic_id
    id
  end
J
Jeremy Kemper 已提交
16

17

D
Initial  
David Heinemeier Hansson 已提交
18
  protected
19 20 21 22 23
    def approved=(val)
      @custom_approved = val
      write_attribute(:approved, val)
    end

D
Initial  
David Heinemeier Hansson 已提交
24 25 26 27 28 29 30
    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
31 32 33 34 35 36 37

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