如何在Elixir中获得与Ecto的"belongs_to"关联?

Jos*_*tty 13 elixir ecto phoenix-framework

我有一个帖子和评论模型.一篇帖子有很多评论,一篇评论属于帖子.

在显示个人评论时,如何访问其所属的帖子?

即在Ruby on Rails中你可以做到:

@comment = Comment.find(params[:id])
@post = @comment.post
Run Code Online (Sandbox Code Playgroud)

我怎样才能使用Phoenix Elixir框架实现这一目标?我相信我已正确设置了模型关联,但我对如何在视图或控制器中实际获取此查询感到困惑.

Gaz*_*ler 24

如果您阅读了Ecto.Schema文档,那么您将看到如何创建belongs_to/3关联.

defmodule MyApp.Comment do
  use MyApp.Model

  schema "comments" do
    belongs_to :post, MyApp.Post
  end
end
Run Code Online (Sandbox Code Playgroud)

设置关联后,您可以使用Repo.preload/2来获取关联.

Repo.preload(comment, :post).post
Run Code Online (Sandbox Code Playgroud)

如果尚未使用Ecto.Query.preload/3获取资源,也可以在查询中预加载