0

レールの新機能はこちら。この特定のアクティブ レコードの関連付けがわかりません。誰かがこれについて私を助けることができますか?モデルは次のようになります。

class User < ActiveRecord::Base
  has_many :client_occurrences,
           foreign_key: "client_id",
           class_name: "Occurrence"
  has_many :requested_occurrences,
           foreign_key: "requestor_id", 
           class_name: "Occurrence"
end

そして、それが関連付けられているものは次のとおりです。

class Occurrence < ActiveRecord::Base
  belongs_to :template, autosave: true
  belongs_to :requestor, class_name: "User"
  belongs_to :client, class_name: "User"
end

ここで描かれている関連性を理解できないようです。ユーザー モデルを見るたびに、すぐに問題として分類します。これは、ユーザー モデルの関連付けを次のように読み取るためです。

ユーザーは client_occurrences によって多くのオカレンス エイリアスを持ち、client_id をforeign_key として設定します

foreign_key が適切なテーブルにないため、これは私にとって問題です(コードの理解によると)。また、client_id と requestor_id は、Occurrence テーブルにある列です。

誰でも助けてもらえますか?

4

2 に答える 2

0

これらは、私がそこから収集したビジネス ルールです。

A User can be associated with an Occurrence as a client

A User can be associated with an Occurrence as a requestor

A User can be associated to many Occurrences

An Occurrence has one requestor User, and one client User

同じモデルに複数回関連付けられているため、外部キーは User モデルで指定されます。そうしないと、Rails はデフォルトで Occurrence モデルの外部キーとして "user_id" を使用します。

すべての異なる ActiveRecord アソシエーションが何をするかについての完全な詳細については、このリンクをチェックしてください: Rails ガイド: ActiveRecord アソシエーション

于 2013-11-04T22:55:05.337 に答える