0

我想创建两个结构几乎相同的模型。但我想将数据集保存在两个不同的表中。这可能在活动记录中吗?

不同表的原因是因为我想要一个不返回结果的查询有意义,例如“不存在具有这些属性的活动模型......”,或“不存在具有这些属性的非活动模型......”

此外,这些类的行为几乎相同,因此抽象或基础模型对于保持干燥很重要。但我想使用明确命名的模型,以便我知道我正在使用“活动”或“非活动”数据。

我想模型类看起来像这样,但我不太确定如何让模型引用不同的表。这可能吗?

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
4

1 回答 1

2

您可以为此使用ActiveRecord::Base.table_name=

或者,如果您的模型被适当命名,您可以使用ActiveRecord::Base.table_name_prefix=or 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
于 2013-04-12T02:31:45.920 回答