2

RubyOnRailsを使用してマルチテナンシーアプリケーションを構築しようとしています。各クライアントは、YAMLファイル(または最終的にはデータベースに保存されているもの)を介して独自のパーソナライズされた構成を持ちます。販売プロセスと各クライアントに必要な構成の量を考慮して、開発チームは構成ファイルを作成します。予想されるクライアント数は100未満です。

特定のクライアントのコード(コントローラー、ビュー、レイアウト)をどのようにオーバーライドしますか(つまり、クライアントごとに1つのモジュールですか?)これは、レール内でどのように実行できますか?

4

2 に答える 2

1

顧客ごとにモジュールを用意し、コントローラー内で対応するモジュールを動的に要求できます。current_user インスタンスがあると仮定すると、ApplicationCOntroller では、インスタンス変数 @client_module をロードする before_filter を使用でき、その変数をコントローラー内で使用してコントローラーを拡張できます。あなたはおそらく、人生を楽にするために、コントローラーごとにクライアントごとに1つのモジュールを実行したいと思うでしょう

于 2012-05-22T15:45:24.880 に答える
0

ルートでこれを行うのはどうですか?

    get ":client/:controller/:action/:id"

外部からのルーティングを調べて、リソースと名前空間のアイデアを得てください。

于 2012-05-22T20:13:07.037 に答える