2012-01-20 6 views
0

私たちは製品サポートのためのアプリケーションを構築しています。アイデアは、それぞれが他の組織の製品をサポートするための複数のサブドメインを持つことです。私たちはこのアカウントと呼んでいます。各アカウントは正確に1つのサブドメインに縛られています。 ユーザーにはロールもありますが、ユーザーはaccount1で1つのロールを持ち、account2では1つのロールを持つことができます。多くの検証は、現在のユーザーが持っている役割に基づいていますセッションデータに基づいた検証、サブドメイン間のデータ共有

1):

は基本的には、二つの問題があります。それはcurrent_account(セッションデータ)に依存するので、私はモデルでこれらの種類のバリデーションを行うことができません。これは私にいくつかの醜いコントローラコード(醜い、実際には外れているという意味で)につながります。私はcurrent_accountをモデルクラスの変数の後に格納することを考えましたが、これはスレッドセーフではないことを読んでいます。どんな勧告?

2)ほとんどすべてのデータベースレコードは現在のアカウントに固有です。したがって、ほとんどすべてのテーブルにaccount_id列があり、モデルにはbelongs_toアカウントの関連付けが必要です。私はそれを避けたい。最初の(明らか)なことは、すべてのアカウントのために別々のデータベースを持っていることですが、

A)が共有されているテーブル

b)は、上司は、このソリューションは、(比較的低いと多くのアカウントがあるでしょう受け入れられないと言いますユーザー数)。 3つ目の方法はありますか?

+0

許可管理宝石を使用していますか?彼らは繰り返しの許可チェックを書くことの苦労を緩和し、役立つヘルパーを追加するのに役立つかもしれません。 –

+0

@DevinM - はい、私はCanCanを使用しています(これは素晴らしいですが)、それはまた、セッションデータから情報(現在のユーザーは何ができますか)を導き出しています。 – Stanko

答えて

関連する問題