宣告关系时有什么不同?
schema "messages" do
field :user_id, :id
end
和
schema "messages" do
belongs_to :user, User
end
[当您执行field :user_id, :id
时,您实际上并不是在声明关系。您只是添加类型为user_id
的id
字段。
Belongs_to
实际上添加关系,默认假设外键为user_id
。 (可以通过选择foreign_key
进行更改)。通过使用belongs_to,Ecto知道如何在执行诸如预加载,如何在附加了相关用户的情况下创建/更新,如何级联删除等操作相关记录。