0

複数のポリモーフィックな関連付けを持つことは可能ですか? 私はよりよく説明します:

  1. 私はさまざまな種類のユーザーを持っています: simple_user、social、collaborator、admin で、db フィールドとアプリケーションによる承認が異なります。
  2. すべてのユーザーが何かを要求できます
  3. リクエストは、さまざまなサービスを対象とすることができます: 翻訳、コンサルティングなど

私はサービスごとに 1 つのテーブルを考えていました: 翻訳、コンサルティング:

has_one :request, :as => requestable

次に、1 つのテーブル リクエストのみ:

belongs_to :requestable, :polymorphic => true

しかし、ユーザーテーブルに対して別のポリモーフィックな関連付けを追加することは可能ですか? どうすればこの関係をうまく処理できますか? アドバイスをありがとう

4

1 に答える 1

2

はい、複数のポリモーフィック アソシエーションを定義できます。それらはすべて独自のデータベース列を使用します。

テーブルに2 つの列user_typeを作成し、この関連付けを定義user_idします。requests

belongs_to :user, :polymorphic => true

Collaborator次に、 aを aに割り当てることができるはずですRequest

Request.create!(:user => Collaborator.first)
于 2012-05-07T18:04:03.047 に答える