0

Rails アプリに gem 'acts_as_tenant' を追加しました。

アプリケーションコントローラーで次のように設定しました。

  set_current_tenant_by_subdomain(:tenant, :subdomain)

また、Tenants テーブルに情報の列を追加しました。たとえば、「closed」ステータスの statuscode_id です。Request モデルでは、その列を使用してスコープを設定したいと考えています。

このようなもの:

scope :closed, where(:statuscode_id => Tenant.find(current_tenant.id).request_closed)

しかし、機能しcurrent_tenantていません。

現在のテナントの ID を取得するには、何を使用できますか?

ありがとう!

4

1 に答える 1

1

これまでに行ったことは、サブドメインを使用してテナントを定義することだけです。テナントが自分のデータのみを表示するように制限するには、モデルでこれを定義する必要があります。

モデルに追加acts_as_tenant(:tenant)する必要があります。このテーブルのデータベースにも列がRequest必要です。tenant_id

これが完了すると、gem が残りを処理し、すべてのデータベース アクセスがテナントによるアクセス制限を自動的に処理します。たとえばRequest.all、バックグラウンドでデフォルトのスコープを使用して、そのテナントが所有するリクエストのみに制限します。

詳細については、 ErwinM/acts_as_tenantを参照してください。

于 2013-09-06T16:30:06.663 に答える