diff --git a/lib/live_admin/resource.ex b/lib/live_admin/resource.ex index 9ac5a9f..6d848c4 100644 --- a/lib/live_admin/resource.ex +++ b/lib/live_admin/resource.ex @@ -55,6 +55,8 @@ defmodule LiveAdmin.Resource do resource |> query(nil, config) |> repo.get(key, prefix: prefix) + rescue + Ecto.Query.CastError -> nil end def delete(record, resource, session, repo, config) do diff --git a/test/live_admin/components/container_test.exs b/test/live_admin/components/container_test.exs index d354c6e..ba85295 100644 --- a/test/live_admin/components/container_test.exs +++ b/test/live_admin/components/container_test.exs @@ -219,6 +219,18 @@ defmodule LiveAdmin.Components.ContainerTest do end end + describe "edit resource with id that cannot be cast" do + setup %{conn: conn} do + {:ok, view, _} = live(conn, "/user/edit/not-a-number") + + %{view: view} + end + + test "renders no record found message", %{view: view} do + assert has_element?(view, "*", "No record found") + end + end + describe "edit resource with embed" do setup %{conn: conn} do user = Repo.insert!(%User{settings: %{}})