apartment
とdevise
gemを使用してマルチテナントアプリを作成しました。以来、私はpostgresqlを使用しているので、apartment
gemはテナントごとに別々のスキーマを作成します。私のデータベースはいくつかのテーブルとして、user
テーブルはパブリック名前空間にありますが、pages
テーブルは各テナント固有のスキーマにあります。私は各テナントに別々にログインすることができ、各テナントのページテーブルの個別のレコードを作成することができます。Rails:マルチテナントアプリとダイナミックルーティング
今、私はこれらのページは、私は私のroutes.rb
ファイル内のルールを以下ました。このため、このtenant1.example.com/page-slug-here
ような形式でアクセスできるようにしたい:アプリはシングルだったときにこれらのルーティングルールが正常に動作した
Page.where.not(slug: nil).all.each do |page|
get "/#{page.slug}", controller: "pages", action: "show", id: page.id
end
マルチテナントでは機能していないため、「経路が一致しません」というエラーが表示されます。
私の推測では、上記のルーティングルールのデータベース呼び出しは、テナント固有のスキーマの代わりにpublic
スキーマを探しています。この問題を解決するには?