0
在我的Phoenix应用程序中,我使用的是Genserver(Paginator)来维护分页目的的状态。Phoenix/Elixir - 协议Phoenix.Param未实施#PID <0.890.0>
我有这个在我的PageController:
def index(conn, params) do
{page_entries, current_page} = case Map.get(params, "page_entries") do
nil ->
{:ok, page_entries} = Paginator.start_link()
{page_entries, 1}
page_entries ->
{page_entries, Map.get(params, "current_page")}
end
# do some stuff
render conn, "index.html", page_entries: page_entries, current_page: current_page
end
在我的模板index.html.eex我有此链接:
link "Next→", to: page_path(@conn, :index, page_entries: @page_entries, current_page: @current_page+1)
但我得到这个错误:
protocol Phoenix.Param not implemented for #PID<0.890.0>
来自docs:
By default, Phoenix implements this protocol for integers, binaries, atoms, maps and structs.
如何通过链接在页面间发送进程ID?有没有办法做到这一点,没有查询字符串中出现过程数据?
我会说这听起来通常是一个糟糕的主意。如果这个过程失败了会怎样?或者如果你需要有多台机器,如果嵌套请求转到另一台机器会怎么样? – michalmuskala