fixed tests, implemented sql based partitioning for favorites

This commit is contained in:
albert
2011-07-16 20:16:34 -04:00
parent fc9755b748
commit 469ae14805
10 changed files with 1291 additions and 4555 deletions

View File

@@ -1,22 +1,4 @@
class Favorite < ActiveRecord::Base
TABLE_COUNT = 100
belongs_to :post
scope :for_user, lambda {|user_id| where("user_id = ?", user_id)}
def self.model_for(user_id)
mod = user_id.to_i % TABLE_COUNT
Object.const_get("Favorite#{mod}")
end
def self.delete_post(post_id)
0.upto(TABLE_COUNT - 1) do |i|
model_for(i).destroy_all(:post_id => post_id)
end
end
end
0.upto(Favorite::TABLE_COUNT - 1) do |i|
Object.const_set("Favorite#{i}", Class.new(Favorite))
Object.const_get("Favorite#{i}").set_table_name("favorites_#{i}")
end