私は、ユーザーが異なる役割を持つことができるアプリ(例えば、売り手、バイヤー、代理店など)を構築しています。だから、私の計画はポリモーフィックな関連付けを使用し、各ロールのクラスを構築し、各インスタンスを1つのユーザーアカウントに関連付けます。それぞれのユーザーはこれらのタイプのうちの1つだけである可能性があります。その件名を読んだ後、私はSTIを使用するよりも優れていると判断しましたが、間違っていれば修正します。1つのフォームと「新しい」アクションで2つの異なるクラスの2つのオブジェクトを作成するにはどうすればよいですか?
したがって、アプリは主な種類のユーザーアカウントに対して異なるサインアップ画面を表示します。たとえば、Seller sign upフォームでは、ユーザーは自分のユーザーアカウントに必要な詳細とSellerプロファイルに固有のフィールドを記入することになります。
したがって、このフォームでユーザーオブジェクトを作成し、それに関連付けられた販売者オブジェクトを作成する必要があります。これはどうやって扱いますか?私の推測では、このフォームは売り手コントローラの「新しい」アクションに対応する必要があり、作成アクションでは、最終的に売り手を作成する前にユーザーアカウントを作成する必要があります。
これは間違いありませんか?もしそうなら、ユーザーコントローラーをSellerコントローラーから作成するか、ユーザーモデルを直接呼び出す必要がありますか?それが前者なら、私は別のコントローラから1つのコントローラをどのように呼び出すべきかわからないので、いくつかのサンプルコードを提供してください。
編集:私はマルチパートフォームを使用することも考えましたが、これはおそらくより簡単ですが、このオプションをチェックする前に決定します。
認可を超えても問題はありませんか? @oaloは「役割」という言葉を使っていますが、実際には「プロファイル」のように聞こえます。そうであれば、ユーザ 'belongs_to:profile、:polymorphic => true'がある' User'と 'Profile'の間に多相関連を使う理由があると思います。 – Feech
真。特に、ユーザープロファイルが大きく異なる場合。 –
はい、@マット、私は、はるかに正確なプロファイルを言っている必要があります。売り手と通常のユーザーのプロファイルは大きく異なり、さまざまな分野があります –