既存のレガシーデータベースに接続しているため、それらのデフォルトのレールテーブル名をオーバーライドしようとしている名前空間モデルがいくつかあります。
私のモデルは次のとおりです。
/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::エラー: エラー: 関係 "licenses_employees" が存在しません
名前空間モデルからプレフィックスを削除するために欠けているものはありますか?
更新: ライセンス モジュールのテーブル名のプレフィックスを '' ではなく 'testing_' に設定しようとしましたが、それでも同じエラー メッセージが表示されます。