28 lines
786 B
Ruby
28 lines
786 B
Ruby
class ForumPost < ActiveRecord::Base
|
|
attr_accessible :body, :topic_id
|
|
belongs_to :creator, :class_name => "User"
|
|
belongs_to :topic, :class_name => "ForumTopic"
|
|
before_validation :initialize_creator, :on => :create
|
|
before_validation :initialize_updater
|
|
after_save :update_topic_updated_at
|
|
validates_presence_of :body, :creator_id
|
|
scope :body_matches, lambda {|body| where(["text_index @@ plainto_tsquery(?)", body])}
|
|
search_method :body_matches
|
|
|
|
def editable_by?(user)
|
|
creator_id == user.id || user.is_moderator?
|
|
end
|
|
|
|
def update_topic_updated_at
|
|
topic.update_attributes(:updater_id => CurrentUser.id)
|
|
end
|
|
|
|
def initialize_creator
|
|
self.creator_id = CurrentUser.id
|
|
end
|
|
|
|
def initialize_updater
|
|
self.updater_id = CurrentUser.id
|
|
end
|
|
end
|