Rails:使用命名空间STI创建错误的表名

时间:2013-04-24 20:20:35

标签: ruby-on-rails activerecord namespaces sti

我有一个使用STI的模型:

class Contributor::Name < Contributor::NameBase
  ...
end

从这个模型:

class Contributor::NameBase < ActiveRecord::Base
  ...
end

每当Contributor::Name实例化时,我都会收到此错误:

Mysql2::Error: Table 'shelflives_development.contributor_basis_name_bases' doesn't exist: SHOW FULL FIELDS FROM `contributor_basis_name_bases`

似乎不是查找表contributor_name_bases,而是查找contributor_basis_name_bases的ActiveRecord。为什么在basiscontributor之间添加name_bases?我怎么能让它停下来?

1 个答案:

答案 0 :(得分:1)

好的,这不是关于为什么rails添加“basis”的答案,但它会对你有用。
在模型中使用set_table_name 'contributor_name_bases'