2015-10-23 20 views
5

Railsコントローラでは、current_userに属する投稿のみを取得するために、以下のコードを頻繁に参照しています。Ecto関連クエリベース

Ectoでこれを表現するにはどうすればよいでしょうか?

答えて

6

Ecto.Model.assoc/2とRepo機能を使用できます。

単一の項目を取得するには、次のユーザーのすべての記事を取得するには

assoc(current_user, :posts) |> Repo.get(id) 

を:

assoc(current_user, :posts) |> Repo.all() 

ます。また、クエリを作成するためにこれを使用することができます。

例えば

defmodule Post do 
    use Ecto.Model 

    ... 

    def published(query) do 
    from p in query, 
     where: p.published 
    end 
end 

assoc(current_user, :posts) |> Post.published() |> Repo.all() 
関連する問題