1
私は以下のスキーマを持っています。エリクシールエクト:スキーマの複数のbelongs_to関係
defmodule Message do
use Ecto.Schema
schema "messages" do
belongs_to :user, FPL.Club, foreign_key: :user_to_id
belongs_to :user, FPL.Club, foreign_key: :user_from_id
end
end
あなたが見ることができるように、私はこのメッセージが送信された者へのメッセージ、およびユーザーを送信したユーザに対応する、私はここで定義したい2体のbelongs_to
関係を持っています。メッセージテーブルには、user_to_id
とuser_from_id
の2つのフィールドがあります。
しかし、これは次のエラーで失敗します。私は間違って何をやっている
== Compilation error on file lib/message.ex ==
** (ArgumentError) field/association :user is already set on schema
lib/ecto/schema.ex:1697: Ecto.Schema.put_struct_field/3
lib/ecto/schema.ex:1677: Ecto.Schema.association/5
lib/ecto/schema.ex:1512: Ecto.Schema.__belongs_to__/4
lib/message.ex:12: (module)
(stdlib) erl_eval.erl:670: :erl_eval.do_apply/6
?
これは機能します。 Userスキーマで 'has_many'関係を使用するにはどうしたらいいですか? 'has_many:messages、FPL.Message'は正しいですか? –
これを試してください: 'has_many:messages_to、FPL.Message、foreign_key :: user_to_id'(そして' to'-> 'from')。 – Dogbert