In Chapter 6 - Managing related data, we got
video_controller.ex:
def delete(conn, %{"id" => id}, current_user) do
video = Multimedia.get_user_video!(current_user, id)
{:ok, _video} = Multimedia.delete_video(video)
conn
|> put_flash(:info, "Video deleted successfully.")
|> redirect(to: Routes.video_path(conn, :index))
end
multimedia.ex
def delete_video(%Video{} = video) do
Repo.delete(video)
end
def get_user_video!(%Accounts.User{} = user, id) do
Video
|> user_videos_query(user)
|> Repo.get!(id)
end
Is there any reason in particular why we’re doing 2 db hits instead of creating a delete_user_video/1
using user_videos_query/1
?