我想创建两个几乎相同结构的模型。但我想将数据集保存在两个不同的表中。这在活动记录中是否可行?
不同表的原因是因为我想要一个不返回任何结果的查询,例如“不存在具有这些属性的活动模型......”,或者“不存在具有这些属性的非活动模型......”
此外,类的行为几乎完全相同,因此抽象或基本模型对于保持干燥非常重要。但我希望使用明确命名的模型,以便我知道我正在使用“活动”或“非活动”数据。
我认为模型类看起来像这样,但我不太确定如何让模型引用不同的表。这可能吗?
class BaseModel < ActiveRecord::Base
attr_accessible :foo, :bar,
end
class ActiveModel < BaseModel
# This class gets its data from table :active_models
end
class InactiveModel < BaseModel
# This class gets its data from table :inactive_models
end
答案 0 :(得分:2)
您可以使用ActiveRecord::Base.table_name=。
或者,如果您的模型名称相应,则可以使用ActiveRecord::Base.table_name_prefix=
或ActiveRecord::Base.table_name_suffix=
。
class BaseModel < ActiveRecord::Base
end
class ActiveModel < BaseModel
# This class gets its data from table :active_models
self.table_name = 'active_models'
end
class InactiveModel < BaseModel
# This class gets its data from table :inactive_models
self.table_name = 'inactive_models'
end