38 lines
800 B
Ruby
38 lines
800 B
Ruby
class PostVersion < ActiveRecord::Base
|
|
belongs_to :post
|
|
belongs_to :updater, :class_name => "User"
|
|
before_validation :initialize_updater
|
|
scope :for_user, lambda {|user_id| where("updater_id = ?", user_id)}
|
|
|
|
def self.create_from_post(post)
|
|
if post.created_at == post.updated_at
|
|
create_from_created_post(post)
|
|
else
|
|
create_from_updated_post(post)
|
|
end
|
|
end
|
|
|
|
def initialize_updater
|
|
self.updater_id = CurrentUser.id
|
|
self.updater_ip_addr = CurrentUser.ip_addr
|
|
end
|
|
|
|
def add_tag_array
|
|
@add_tag_array ||= add_tags.scan(/\S+/)
|
|
end
|
|
|
|
def del_tag_array
|
|
@del_tag_array ||= del_tags.scan(/\S+/)
|
|
end
|
|
|
|
def presenter
|
|
PostVersionPresenter.new(self)
|
|
end
|
|
|
|
def reload
|
|
@add_tag_array = nil
|
|
@del_tag_array = nil
|
|
super
|
|
end
|
|
end
|