2
有什么可以为Rails 3中的ActiveRecord模型指定不同的模式?以下用于在Rails 2中工作:Rails 3和MySQL中的多个数据库模式
class Company < ActiveRecord::Base
set_table_name "hr.company"
end
这在Rails 3中失败,并带有消息Table myapp.hr.company doesn't exist
。
的简单模型下面的工作:
class Company < ActiveRecord::Base
establish_connection "hr"
set_table_name "company"
end
这种方法的问题是双重的:第一,Rails的创建这个模型单独的数据库连接,堂堂一个额外的开销。第二,所有的查询调用现在在这方面的背景下,这意味着任何联接回myapp
模式将打破:
class Company < ActiveRecord::Base
establish_connection "hr"
set_table_name "company"
has_many :widgets # widgets table resides in myapp schema
end
这反过来将失败,Table hr.widgets doesn't exist
。
那么,有没有什么办法可以在Rails 3中实现这一点?
只是为了澄清...你只是想暂时改变表名或永久改变表名吗? – Msencenb 2011-06-16 17:10:28
永久性的,如同在这个模型中始终使用合格的表名。 – pazustep 2011-06-16 18:36:19