beast rev 2066
[beast-modified.git] / db / migrate / 036_topics_cache_last_replied_user.rb
blob34ba6f2ac834df35dbba0b45f3bc32f9fcc25a06
1 class TopicsCacheLastRepliedUser < ActiveRecord::Migration
2   class Post < ActiveRecord::Base; end
3   class Topic < ActiveRecord::Base
4     has_many :posts
5   end
6   def self.up
7     add_column "topics", "replied_by", :integer
8     add_column "topics", "last_post_id", :integer
9     Topic.find(:all).each do |topic|
10       next if topic.posts.count.zero?
11       topic.replied_by   = topic.posts.last.user_id
12       topic.last_post_id = topic.posts.last.id
13       topic.save!
14     end
15   end
17   def self.down
18     remove_column "topics", "replied_by"
19     remove_column "topics", "last_post_id"
20   end
21 end