私のPhoenixアプリケーションでは、ページングの状態を維持するためにGenserver(Paginator)を使用しています。Phoenix/Elixir - プロトコルPhoenix.Paramが#PIDに実装されていません<0.890.0>
私は私のPageControllerで、この持っている:私は、このリンクを持っている私のテンプレートindex.html.eexで
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
を:
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