0

外部キーを設定する場合、ユーザーが user_id を使用するためにアクティブなレコードが必要であることは知っていますが、必要なプロジェクトでは、異なるユーザー (責任者、実行者、検証ユーザー) を格納するために 3 つの異なるフィールドを使用する必要があります。

だから今は次のように見えます

Task
-----------
name | date | until | initiation | validation | execution  

私はそれが次のように見えるべきだと思います

has_one :user,class => User,:as=> :initiation

または同様ですが、まだ正しい方法を見つけることができません

4

2 に答える 2

2

私の理解が正しければ、Task モデルがあり、それを処理する 3 種類のユーザーがいます。それらすべてを参照したいですよね?

その場合は、まず移行によって、initiation_id、validation_id、および execution_id フィールドをタスク テーブルに配置します。次に、Task モデルでこれを試してください。

has_one :initiation, :class => "User", :foreign_key => :initiation_id
has_one :validation, :class => "User", :foreign_key => :validation_id
has_one :execution, :class => "User", :foreign_key => :execution_id

私があなたを正しく理解したことを願っています。

于 2013-09-16T21:02:04.870 に答える