2015-12-09 68 views
13

我有一個發表和評論模型。一篇文章有​​很多評論,一篇評論屬於一篇文章。如何在Elixir中獲得與Ecto的「belongs_to」關聯?

當顯示個人評論時,我如何訪問它所屬的帖子?

即在Ruby on Rails的你可以這樣做:

@comment = Comment.find(params[:id]) 
@post = @comment.post 

我怎麼能做到這一點使用鳳凰藥劑框架?我相信我的模型關聯設置正確,但我對如何在視圖或控制器中實際獲取此查詢感到困惑。

回答

20

如果您閱讀Ecto.Schema文檔,則會看到如何創建belongs_to/3關聯。

defmodule MyApp.Comment do 
    use MyApp.Model 

    schema "comments" do 
    belongs_to :post, MyApp.Post 
    end 
end 

隨着關聯設置,您可以使用Repo.preload/2來獲取關聯。

Repo.preload(comment, :post).post 

您也可以預載在一個查詢,如果你還沒有Ecto.Query.preload/3

+0

真棒獲取的資源,太感謝你了。 –