現在、DataMapper を使用して JRuby on Rails アプリケーションを Oracle データベースにアクセスさせています。次のようなさまざまなユーザー/スキーマからテーブルにアクセスするための構成/ルーチンがあるかどうか疑問に思います。
SELECT * FROM "SCHEMAXY"."TABLEXY";
テーブル名と一緒にスキーマを指定することでこれを機能させるハックを実装しましたが、これが良い解決策であるとは思えません。
class Tablexy
include DataMapper::Resource
storage_names[:default] = "SCHEMAXY.TABLEXY"
end
ハック(っぽい)
# Replace a dot in the name by a quoted one
# so "NAMESPACE.TABLE" gets "NAMESPACE"."TABLE"
module DataMapper
module Adapters
class OracleAdapter
def quote_name(name)
super.gsub('.', '"."')
end
end
end
end
DataMapper にこれに対する統合されたソリューションがあることを願っています。