我有一些命名空间模型,我正在尝试为它们覆盖默认的 rails 表名,因为我正在连接到现有的旧数据库。
我的模型是:
/app/models/licenses.rb
module Licenses
def self.table_name_prefix
''
end
end
/app/models/licenses/employee.rb
class Licenses::Employee < ActiveRecord::Base
establish_connection YAML::load(File.open("#{Rails.root}/config/licenses_database.yml"))[Rails.env]
self.table_name = 'EMPLOYEE'
self.primary_key = 'EMPLOYEE_ID'
end
/app/models/licenses/inspection.rb
class Licenses::Inspection < ActiveRecord::Base
establish_connection YAML::load(File.open("#{Rails.root}/config/licenses_database.yml"))[Rails.env]
self.table_name = 'INSPECTION'
self.primary_key = 'INSPECTION_ID'
end
当我运行测试时,会生成错误
PG::Error: 错误:关系“licenses_employees”不存在
从命名空间模型中删除前缀是否缺少一些东西?
更新:我尝试将许可证模块中的表名前缀设置为“testing_”而不是“”,但我仍然收到相同的错误消息。