浏览 3329 次
锁定老帖子 主题:Rails中如何支持数据库分表啊
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-04-30
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-06-03
我很早以前的做法,我的表是按月份分的,在rails中用动态创建model的方式处理:
module Dynamic class << self def klass(table_name) tname = class_name_from_table(table_name) #see if it has already been defined const_missing(tname) rescue NameError define_klass(table_name) end def objeck(table_name) klass(table_name).new end private def class_name_from_table(table_name) Inflector.camelize(table_name) end def define_klass(table_name) tname = class_name_from_table(table_name) class_def = <<-end_eval class #{tname} < ActiveRecord::Base set_table_name('#{table_name}') end end_eval eval(class_def, TOPLEVEL_BINDING) const_get(tname) end end end 使用样例: class ProjectController < ApplicationController include Dynamic def index @projects = Dynamic.klass("projects1").find :all #Project.set_table("projects1") #@projects = Project.find :all end end 不知道 set_table_name 是不是直接就可以,没试过,如果可以就简单了一些。 |
|
返回顶楼 | |