5
Railsコントローラでは、current_userに属する投稿のみを取得するために、以下のコードを頻繁に参照しています。Ecto関連クエリベース
Ectoでこれを表現するにはどうすればよいでしょうか?
Railsコントローラでは、current_userに属する投稿のみを取得するために、以下のコードを頻繁に参照しています。Ecto関連クエリベース
Ectoでこれを表現するにはどうすればよいでしょうか?
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()