Utilisation Ecto v2.2.6, Phoenix 1.3associations multiples sur le même schémas
J'ai un scénario dans lequel un utilisateur peut créer des postes, et d'autres utilisateurs peuvent aimer les messages. Les utilisateurs ont une relation un-à-plusieurs avec les messages via la création, et une relation plusieurs-à-plusieurs avec les likes, via une table de liaison.
Configuration:
mix phx.gen.json Account User users name:string
mix phx.gen.json Content Post posts title:string content:text user_id:references:users
mix phx.gen.json Content Like likes user_id:references:users post_id:references:posts
schemas:
schema "users" do
field :name, :string
has_many :posts, SocialNetwork.Content.Post, foreign_key: :users_id
many_to_many :posts, SocialNetwork.Content.Post, join_through: "likes"
timestamps()
end
schema "posts" do
field :content, :string
field :title, :string
belongs_to :user, SocialNetwork.Accounts.User
many_to_many :users, SocialNetwork.Accounts.User, join_through: "likes"
timestamps()
end
schema "likes" do
belongs_to :user, SocialNetwork.Accounts.User
belongs_to :post, SocialNetwork.Content.Post
timestamps()
end
Quand je lance mix phx.server, je reçois cette erreur:
== Compilation error in file lib/social_network/account/user.ex ==
** (ArgumentError) field/association :posts is already set on schema
Est-il possible que je peux définir plus d'une association au même schéma, mais dans un contexte différent?