Hi,
I’m trying to generate a module with a function at runtime (from an Phoenix LiveView handle_params function), but I’m not able to make my code work.
Here is a sample code that fails:
page = "TestPage"
mod_name = Module.concat(MyProject.Pages, page)
Module.create(
mod_name,
quote do
def render(assigns) do
:ok
end
end,
line: 1,
file: "no_file.exs"
)
When I run this code (inside a handle_params function from a LiveView) I get this CompileError:
error: cannot invoke remote function Phoenix.Component.Declarative.__pattern__!/2 inside a match
└─ no_file.exs:1: MyProject.Pages.TestPage.render/1
What does it mean?
Am i missing something?
My code seems pretty simple, but still, it does not work.
I’m not a macro expert, maybe there is something I misunderstood.
When I try the same code with no argument for the render function, it works.
But as soon as I add an argument, it fails.
Thank you for your help


















