I have one table Teams which has primary key (id).
The other table refer to key (id) as different columns. home_team_id and away_team_id.
In case of RoR. I can write following code for model.
belongs_to :home_team, class_name: Team, foreign_key: 'home_team_id'
belongs_to :away_team, class_name: Team, foreign_key: 'away_team_id'
How can I write for Phoenix or Ecto way?
Thanks.
belongs_to :home_team, Team
belongs_to :away_team, Team
This will just straight up work. The foreign key defaults to #{association_name}_id
so you don’t even need to specify it.
https://hexdocs.pm/ecto/Ecto.Schema.html#belongs_to/3-options
1 Like
When I try to preload team from game, the following error happen.
# schema Apps.Sample.Game does not have association :team
I should have written following. I figured out.
query = from g in Game,
preload: [:away_team, :home_team]
Thanks.
1 Like