Ruby on rails 可装载Rails中的单表继承类型::引擎不';不包含命名空间

Ruby on rails 可装载Rails中的单表继承类型::引擎不';不包含命名空间,ruby-on-rails,inheritance,activerecord,Ruby On Rails,Inheritance,Activerecord,我正在创建一个可安装的Rails引擎(3.2.x),其中有一个单表继承模型: module Geo class Location < ActiveRecord::Base; end end module Geo class Country < Location; end end 模块Geo 类位置

我正在创建一个可安装的Rails引擎(3.2.x),其中有一个单表继承模型:

module Geo
  class Location < ActiveRecord::Base; end
end

module Geo
  class Country < Location; end
end
模块Geo
类位置
但是,在保存
位置
时,
类型
字段包含
国家
,而不是
Geo::Country
…这对我来说没什么问题…只是在将引擎包含在另一个gem中后会出现此错误

ActiveRecord::SubclassNotFound:单表继承机制无法定位子类:“Country”。引发此错误是因为列“type”是为在继承情况下存储类而保留的。如果您不打算将此列用于存储继承类或覆盖Geo::Location.Inheritation\u列以使用另一列获取该信息,请重命名此列


最好的解决办法是什么?是否可以保留非命名空间类型(
Country
而不是'Geo::Country')?或者我必须告诉我的Geo::Location模型显式使用名称空间吗?

看起来您需要在type列中使用名称空间,就像您所说的那样。这就是rails在执行Country.new.type时自动执行此操作的方式,您将获得“Geo::Country”