1
我有以下模式。Elixir Ecto:模式中的多个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
正如你所看到的,我有两个belongs_to
的关系,我想在这里定义,对应于谁发送的消息,给谁发送该消息的用户的用户。在消息表中,我有两个名为user_to_id
和user_from_id
的字段。
但这种失败,出现以下错误:
== 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:消息,FPL.Message'正确吗? –
试试这个:'has_many:messages_to,FPL.Message,foreign_key :: user_to_id'(然后''''''from')。 – Dogbert